You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+18-14Lines changed: 18 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,15 +3,16 @@
3
3
Welcome to the Ewasm public testnet! This repository is the primary point of coordination for the testnet. Read on for more information about how to:
4
4
5
5
- Write smart contracts in supported languages and compile them to Wasm bytecode
6
-
- Transact on the testnet, including deploying contracts
6
+
- Transact on the testnet, such as by deploying smart contracts compiled to Ewasm bytecode
7
+
- Run a testnet node locally
7
8
- Add a node to the testnet
8
9
- Participate in mining
9
-
- Participate in network forks
10
+
- Participate in network upgrades
10
11
- Contribute to development and devops
11
12
12
13
## Background
13
14
14
-
Ewasm, which stands for Ethereum-flavored WebAssembly, is the primary candidate to replace EVM (the Ethereum virtual machine) as part of the Ethereum 2.0 "Shasper" roadmap. It is also proposed for adoption on the Ethereum mainnet. Ewasm is a deterministic smart contract execution engine built on the modern, standard [WebAssembly virtual machine](https://webassembly.org/).
15
+
Ewasm, which stands for Ethereum-flavored WebAssembly, is the primary candidate to replace [EVM](https://github.com/ethereum/wiki/wiki/Ethereum-Virtual-Machine-(EVM)-Awesome-List) (the Ethereum virtual machine) as part of the Ethereum 2.0 "Serenity" roadmap. It is also proposed for adoption on the Ethereum mainnet. Ewasm is a deterministic smart contract execution engine built on the modern, standard [WebAssembly virtual machine](https://webassembly.org/).
15
16
16
17
For more information on Ewasm, please refer to the following resources:
17
18
@@ -36,7 +37,7 @@ The team also hosts a (roughly) fortnightly public "Ewasm community hangout" cal
36
37
37
38
## Writing and compiling smart contracts
38
39
39
-
One of the [design goals](https://github.com/ewasm/design/blob/master/rationale.md) of the Ewasm project is to support smart contract development in a wide range of languages, using a range of tooling, including existing, mature toolchains such as LLVM (C/C++, Kotlin, Rust, and [many others](https://en.wikipedia.org/wiki/LLVM)) and JavaScript/TypeScript. In theory, any language that can be compiled to Wasm can be used to write a smart contract (as long as it implements the [contract interface](https://github.com/ewasm/design/blob/master/contract_interface.md) and [Ethereum interface](https://github.com/ewasm/design/blob/master/eth_interface.md)). See [awesome-wasm-langs](https://github.com/appcypher/awesome-wasm-langs) for a reasonably up-to-date list of such languages.
40
+
One of the [design goals](https://github.com/ewasm/design/blob/master/rationale.md) of the Ewasm project is to support smart contract development in a wide range of languages, using a range of tooling, including existing, mature toolchains such as LLVM (C/C++, Kotlin, Rust, and [many others](https://en.wikipedia.org/wiki/LLVM)) and JavaScript/TypeScript. In theory, any language that can be compiled to Wasm can be used to write a smart contract (as long as it implements the [contract interface](https://github.com/ewasm/design/blob/master/contract_interface.md) and [Ethereum interface](https://github.com/ewasm/design/blob/master/eth_interface.md)). See [awesome-wasm-langs](https://github.com/appcypher/awesome-wasm-langs) for a list of such languages.
40
41
41
42
At present, we've developed support for the following languages and toolchains:
42
43
@@ -45,28 +46,31 @@ At present, we've developed support for the following languages and toolchains:
45
46
46
47
If you're interested in adding support for another language, framework, or toolset, see the Contributing section above and reach out.
47
48
49
+
## Differences from mainnet
50
+
51
+
The Ewasm testnet supports executing EVM 1.0 (Byzantium) bytecode **and** ewasm bytecode. The chain id is set to 0x42 (decimal 66).
52
+
53
+
There are two further technical differences:
54
+
55
+
- the code size limit introduced by Spurious Dragon has been lifted and there is no upper limit (as Wasm bytecode is more verbose than the EVM equivalent)
56
+
- zero bytes in contract bytecode are not subsidised during deployment (they cost the same as non-zero bytes)
57
+
48
58
## Transacting
49
59
50
60
You don't need any special infrastructure to transact on the Ewasm testnet. You may run your own node (see below), or you may use the public node. You may view the list of testnet tools here: http://ewasm.ethereum.org/. Start by requesting test ether from the faucet:
51
61
52
62
- Configure Metamask to use the public node. Open Metamask, tap the network selector at the top, and click Custom RPC. Enter the following URL and click Save: http://ewasm.ethereum.org:8545.
53
63
- Browse to the [faucet](http://ewasm.ethereum.org/faucet), make sure it read your public key correctly from Metamask in the "user" section, then tap "request 1 ether from faucet" in the "faucet" section.
54
-
-Open the [testnet explorer](http://ewasm.ethereum.org/explorer/) and watch your faucet transaction get mined.
64
+
-Click the txid that appears in the "transactions" section and watch your faucet transaction get mined.
55
65
56
66
Voila! You're now ready to transact on the testnet.
57
67
58
-
## Differences from mainnet
59
-
60
-
The Ewasm testnet supports executing EVM 1.0 (Byzantium) bytecode **and** ewasm bytecode. The chain id is set to 0x42 (66).
68
+
## Running a testnet node locally
61
69
62
-
There are two differences:
63
-
- code size limit introduced by Spurious Dragon has been lifted and there is no upper limit
64
-
- zero bytes in contract bytecode are not subsidised anymore during deployment (they cost the same as non-zero bytes)
70
+
The testnet currently only supports the [go-ethereum](https://github.com/ethereum/go-ethereum) (geth) client. Support for aleth (formerly, cpp-ethereum) is a work in progress and more information may be found [here](aleth.md).
65
71
66
72
## Adding a node to the testnet
67
73
68
-
The testnet currently only supports the [go-ethereum](https://github.com/ethereum/go-ethereum) (geth) client. Support for aleth (formerly, cpp-ethereum) is a work in progress and more information may be found [here](aleth.md).
69
-
70
74
### Geth
71
75
72
76
You may install and configure geth in the following ways:
@@ -252,4 +256,4 @@ Learn how to create and run ewasm tests [here](https://github.com/ewasm/tests/bl
252
256
253
257
## Testnet Faucet
254
258
255
-
It is a fork of the [MetaMask faucet](https://faucet.metamask.io/). The fork is maintained [here](https://github.com/ewasm/eth-faucet).
259
+
The faucet is a fork of the [MetaMask faucet](https://faucet.metamask.io/). The fork is maintained [here](https://github.com/ewasm/eth-faucet).
0 commit comments