Skip to content

Commit 216a518

Browse files
committed
Update zkEVM - include forkIds
2 parents f25c006 + b8141f0 commit 216a518

File tree

6 files changed

+39
-114
lines changed

6 files changed

+39
-114
lines changed

README.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Welcome to the Polygon Knowledge Layer! This documentation is built using [the M
66
- Polygon zkEVM
77
- Polygon PoS
88
- Polygon Miden
9+
- Dev Tools
910

1011
In addition, we include top-level sections for Tools and Tutorials to support developers in their journey with Polygon technology.
1112

@@ -82,8 +83,10 @@ Whenever we are happy with `main`, a trigger can be manually done through GitHub
8283

8384
## Contact and support
8485

85-
For any queries or support, join our Polygon Slack channel at `#disc_tkd_techdocs`. Current team members:
86+
For any queries or support, please open a ticket at https://support.polygon.technology/support/home.
87+
88+
## Current Technical Knowledge Documentation (TKD) team members
8689

87-
- Grace Torrellas (@0xgraciegrace)
8890
- Anthony Matlala (@EmpieichO)
89-
- Katharine Murphy (@kmurphypolygon)
91+
- Katharine Murphy (@kmurphypolygon)
92+
- Hans (@hsutaiyu)

docs/cdk/get-started/quickstart-validium.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,17 @@ You should see a page similar to this:
183183
<img src="/img/cdk/cdk-tx-view-on-block-explorer.png" alt="bridge" width="90%" height="30%" />
184184
</div>
185185

186+
!!! warning "Troubleshooting stuck transactions with MetaMask"
187+
If you encounter a stuck transaction, it is likely due to an incorrect nonce setting.
188+
189+
To resolve this issue, follow the steps below:
190+
191+
1. Open Metamask and navigate to your account.
192+
2. Click on **Settings**.
193+
3. In the **Settings** menu, select **Advanced**.
194+
4. Locate the option **Clear activity and nonce data** and click on it.
195+
5. This resets the nonce data associated with the account, which often resolves transaction-related issues.
196+
186197
## 5. Test the bridge
187198

188199
CDK has a native bridge with UI that allows you to transfer funds between the L1 and the L2 validium.
@@ -201,6 +212,9 @@ CDK has a native bridge with UI that allows you to transfer funds between the L1
201212

202213
5.1.4 Click on **Connect a wallet > MetaMask**.
203214

215+
!!! note
216+
You won't see this view the second time around.
217+
204218
<div align="center">
205219
<img src="/img/cdk/cdk-bridge.png" alt="bridge" width="90%" height="30%" />
206220
</div>
@@ -211,7 +225,7 @@ CDK has a native bridge with UI that allows you to transfer funds between the L1
211225
<img src="/img/cdk/cdk-bridge-connected.png" alt="bridge" width="90%" height="30%" />
212226
</div>
213227

214-
5.1.6 Enter the amount (e.g. 5) to bridge and click **Continue**, you will see the **Confirm Bridge** page.
228+
5.1.6 Enter the amount (e.g. 5) to bridge and click **Continue**, after confirming you understood what you're doing, you will see the **Confirm Bridge** page.
215229

216230
5.1.7 Click **Bridge** and approve the transaction on the MetaMask pop-up:
217231

docs/cdk/how-to/manage-policies.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# Manage allowlists, and more, with policies
2+
13
!!! important
24
Policies are currently only available in validium mode.
35

docs/zkEVM/architecture/zknode/index.md

Lines changed: 0 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -72,97 +72,3 @@ Required services and components:
7272

7373
It's recommended that the prover is run on a separate instance, as it has important hardware requirements. On the other hand, all the other components can run on a single instance.
7474

75-
76-
******************* *****************************
77-
78-
79-
80-
81-
### (new version) ... zkEVM vs EVM differences
82-
83-
This document provides a comprehensive list of differences between the Ethereum Virtual Machine (EVM) and the Polygon Zero-Knowledge Ethereum Virtual Machine (zkEVM). The list includes supported EIPs, opcodes, and additional changes made to build the zkEVM.
84-
85-
86-
87-
### EVM-equivalence
88-
89-
Polygon zkEVM aiming being a Type-2, is designed to be EVM-equivalent rather than being compatible.
90-
91-
The difference between EVM-compatibility and EVM-equivalence is that;
92-
93-
- Solutions that are compatible, enable most of the existing applications to work, but sometimes with code changes. Additionally, compatibility may lead to the breaking of developer toolings.
94-
- Polygon zkEVM strives for EVM-equivalence which means most applications, tools, and infrastructure built on Ethereum can immediately port over to Polygon zkEVM, with limited to no changes needed. Things are designed to work 100% on day one.
95-
96-
EVM-equivalence is critical to Polygon zkEVM for several reasons, including the following:
97-
98-
1. Development teams don't have to make changes to their code, and thus nullifies any chance to introduce security vulnerabilities.
99-
2. No code changes, means no need for additional audits. This saves time and money.
100-
3. Polygon zkEVM benefits from the security and decentralization of Ethereum, since transactions are still finalizing on Ethereum.
101-
4. EVM-equivalence allows Polygon zkEVM to benefit from the already vibrant and active Ethereum community.
102-
5. It also allows for significant and quick dApp adoption, because applications built on Ethereum are automatically compatible.
103-
104-
Ultimately, Polygon zkEVM gives developers an almost identical UX to Ethereum, but with significantly improved scalability.
105-
106-
107-
108-
!!!info
109-
No impact on developer experience
110-
111-
​ Note that the following differences have no impact on the developer experience with the zkEVM as compared to the EVM. Gas optimization techniques, interacting with libraries like Web3.js and Ethers.js, and deploying contracts work seamlessly on the zkEVM without any overhead.
112-
113-
114-
115-
Note that the following differences have no impact on the developer experience with the zkEVM as compared to the EVM.
116-
117-
- Gas optimization techniques,
118-
- Interacting with libraries, like Web3.js and Ethers.js,
119-
- Deploying contracts work seamlessly on the zkEVM without any overhead.
120-
121-
122-
123-
### Opcodes
124-
125-
Below is a list of the changes we have made with Opcodes in zKEVM in comparison to the EVM.
126-
127-
- **SELFDESTRUCT** &rarr; removed and replaced by **SENDALL**.
128-
129-
- **EXTCODEHASH** &rarr; returns the hash of the contract bytecode from the zkEVM state tree without checking if the account is empty.
130-
131-
- **DIFFICULTY** &rarr; returns "0" instead of a random number as in the EVM.
132-
133-
- **BLOCKHASH** &rarr; returns all previous block hashes instead of just the last 256 blocks.
134-
135-
> **BLOCKHASH** is the state root at the end of a processable transaction and is stored on the system smart contract.
136-
137-
- **NUMBER** &rarr; returns the number of processable transactions.
138-
- **BASEFEE** &rarr; not supported. The zkEVM implements Berlin hardfork, but not the London hardfork.
139-
140-
141-
142-
### Precompiled contracts
143-
144-
Among Ethereum's precompiled contracts, the zkEVM currrently supports: **ecRecover** and **identity**.
145-
146-
Other precompiled contracts have no effect on the zkEVM state tree and are treated as a `revert`, returning all gas to the previous context and setting the `success` flag to "0".
147-
148-
149-
150-
## Additions
151-
152-
**zk-counters** &rarr; batch resources are available, linked to state-machine components, as a supplementary addition to gas computation.
153-
154-
155-
156-
## Other minor differences
157-
158-
- zkEVM doesn't clean storage when a contract is deployed at an address due to the zkEVM state tree specification.
159-
160-
- **JUMPDEST** opcode is allowed in push bytes to avoid runtime bytecode analysis.
161-
162-
- The zkEVM implements [EIP-3541](https://eips.ethereum.org/EIPS/eip-3541) from the [London hardfork](https://ethereum.org/en/history/#london).
163-
164-
- [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718) which defines **Typed Transaction Envelope**, is not supported
165-
- [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930), which defines the **Optional Access Lists** transaction type, is not supported.
166-
167-
168-

docs/zkEVM/spec/evm-differences.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,27 @@ This document provides a comprehensive list of differences between the EVM and t
22

33
### EVM-equivalence
44

5-
Polygon zkEVM is designed to be EVM-equivalent rather than just being compatible.
5+
Polygon zkEVM is designed to be EVM-equivalent rather than just compatible.
66

77
The difference between EVM-compatibility and EVM-equivalence is that;
88

9-
- Solutions that are compatible, enable most of the existing applications to work, but sometimes with code changes. Additionally, compatibility may lead to the breaking of developer toolings.
9+
- Solutions that are compatible support most of the existing applications, but sometimes with code changes. Additionally, compatibility may lead to breaking developer tooling.
1010

1111
- Polygon zkEVM strives for EVM-equivalence which means most applications, tools, and infrastructure built on Ethereum can immediately port over to Polygon zkEVM, with limited to no changes needed. Things are designed to work 100% on day one.
1212

1313
EVM-equivalence is critical to Polygon zkEVM for several reasons, including the following:
1414

15-
1. Development teams don't have to make changes to their code, and this eliminates any chance for security vulnerabilities to be introduced.
15+
1. Development teams don't have to make changes to their code, and this eliminates the possibility of introducing new security vulnerabilities.
1616

17-
2. No code changes, means no need for additional audits. This saves time and money.
17+
2. No code changes means no need for additional audits. This saves time and money.
1818

1919
3. Since consolidation of batches and finality of transactions is achieved via smart contracts on Ethereum, Polygon zkEVM benefits from the security of Ethereum.
2020

2121
4. EVM-equivalence allows Polygon zkEVM to benefit from the already vibrant and active Ethereum community.
2222

2323
5. It also allows for significant and quick dApp adoption, because applications built on Ethereum are automatically compatible.
2424

25-
Ultimately, Polygon zkEVM offers developers the exact same UX as on Ethereum, with significantly improved scalability.
25+
Ultimately, Polygon zkEVM offers developers the same UX as on Ethereum, with significantly improved scalability.
2626

2727

2828
!!!info
@@ -34,16 +34,16 @@ The following differences have no impact on the developer's experience on the zk
3434

3535
- Gas optimization techniques.
3636
- Interacting with libraries, like Web3.js and Ethers.js.
37-
- Deploying contracts works seamlessly on the zkEVM without any overhead.
37+
- Deploying contracts seamlessly on the zkEVM without any overhead.
3838

3939

4040
### Opcodes
4141

42-
Below is a list of the changes we have made with Opcodes in zkEVM in comparison to the EVM.
42+
Below is a list of the changes we have made to opcodes in zkEVM in comparison to the EVM.
4343

4444
- **SELFDESTRUCT** &rarr; removed and replaced by **SENDALL**.
4545

46-
- **EXTCODEHASH** &rarr; returns the hash of the contract bytecode from the zkEVM state tree without checking if the account is empty.
46+
- `EXTCODEHASH` returns the hash of the contract bytecode from the zkEVM state tree without checking if the account is empty.
4747

4848
- **DIFFICULTY** &rarr; returns "0" instead of a random number as in the EVM.
4949

@@ -56,7 +56,7 @@ Below is a list of the changes we have made with Opcodes in zkEVM in comparison
5656

5757
### Precompiled contracts
5858

59-
Among Ethereum's precompiled contracts, the zkEVM currrently supports: **ecRecover** and **identity**.
59+
Among Ethereum's precompiled contracts, the zkEVM currrently supports: [`ecRecover`](https://www.evm.codes/precompiled?fork=shanghai) and [`identity`](https://www.evm.codes/precompiled?fork=shanghai).
6060

6161
Other precompiled contracts have no effect on the zkEVM state tree and are treated as reverts, returning all gas to the previous context and setting the `success` flag to "0".
6262

@@ -70,12 +70,12 @@ Other precompiled contracts have no effect on the zkEVM state tree and are treat
7070

7171
- zkEVM doesn't clean storage when a contract is deployed at an address due to the zkEVM state tree specification.
7272

73-
- **JUMPDEST** opcode is allowed in push bytes to avoid runtime bytecode analysis.
73+
- `JUMPDEST` is allowed in push bytes to avoid runtime bytecode analysis.
7474

7575
- The zkEVM implements [EIP-3541](https://eips.ethereum.org/EIPS/eip-3541) from the [London hardfork](https://ethereum.org/en/history/#london).
7676

77-
- [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718) which defines **Typed Transaction Envelope**, is not supported
77+
- [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718) which defines the Typed Transaction Envelope, is not supported
7878

79-
- [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930), which defines the **Optional Access Lists** transaction type, is not supported.
79+
- [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930), which defines the Optional Access Lists transaction type, is not supported.
8080

81-
- [**BASEFEE**](https://ethereum-org-fork.netlify.app/en/developers/docs/gas#base-fee) opcode is not supported. The zkEVM implements Berlin hardfork, but not the London hardfork.
81+
- [`BASEFEE`](https://ethereum-org-fork.netlify.app/en/developers/docs/gas#base-fee) opcode is not supported. The zkEVM implements the Berlin hardfork, but not the London hardfork.

mkdocs.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,7 @@ nav:
4343
- CDK: cdk/index.md
4444
- Overview: cdk/overview.md
4545
- Get started:
46-
- Connect testnet: cdk/get-started/connect-testnet.md
47-
- Quickstart:
46+
- Quickstart:
4847
- Validium: cdk/get-started/quickstart-validium.md
4948
- Rollup: cdk/get-started/quickstart-rollup.md
5049
- Deploy:
@@ -57,8 +56,9 @@ nav:
5756
- Configure prover: cdk/get-started/deploy-rollup/configure-prover.md
5857
- Activate forced transactions: cdk/get-started/deploy-rollup/activate-forced-transactions.md
5958
- Set up Goerli node: cdk/get-started/deploy-rollup/setup-goerli-node.md
59+
- Connect to CDK testnet: cdk/get-started/connect-testnet.md
6060
- How to:
61-
- Manage policies: cdk/how-to/manage-policies.md
61+
- Manage allowlists with policies: cdk/how-to/manage-policies.md
6262
- Architecture:
6363
- DAC: cdk/architecture/dac.md
6464
- Specification:

0 commit comments

Comments
 (0)