ewasm / testnet

Testnet planning & documentation
64 stars 19 forks source link

Adding a geth+wagon node to the testnet #99

Open gballet opened 5 years ago

MaxGraey commented 5 years ago

May be better life instead wagon? If you not yet starting progress in this direction

lrettig commented 5 years ago

Does this refer to adding a node to the testnet?

MaxGraey commented 5 years ago

I'm not sure. life just is better alternative of wagon VM. It already great tuning for blockchain scope, has JIT, validate and decline wasm op codes which contain non-deterministic behaviour like float point op codes and etc. Also it tested even on AssemblyScript binaries. Actually perlin-network also using AS for its own contacts. But anyway it's just suggestion. May be wagon better align for your needs

MaxGraey commented 5 years ago

Actually I personally am a big fan of VMs based on Cranelift (developed by Mozilla and use Rust) like wasmer, wasmtime and Nebulet (run on Ring-0). But they are not yet mature

gballet commented 5 years ago

@MaxGraey We already have a working implementation with wagon. Life sounds interesting, I will experiment with it next week. it shouldn't be too difficult to port the work I did on wagon.

gballet commented 5 years ago

So this should be good to go (not with life, that's something for the next milestone). Waiting feedback on https://github.com/ewasm/go-ethereum/issues/6 and https://github.com/ewasm/go-ethereum/issues/1

jwasinger commented 5 years ago

@gballet I'll deploy a geth+wagon node.

gballet commented 5 years ago

@jwasinger ok, just to confirm: you need to use --vm.ewasm="metering:true" for it to work

gballet commented 5 years ago
./geth+wagon init ewasm-testnet-geth-config.json && ./geth+wagon --etherbase 0x9AfA52330797885BC7f6Df7b7d87835995d0f4f1 --rpc --rpcapi "web3,net,eth,debug" --rpcvhosts="*" --rpcaddr "0.0.0.0" --rpccorsdomain "*" --networkid 66 --bootnodes "enode://53458e6bf0353f3378e115034cf6c6039b9faed52548da9030b37b4672de4a8fd09f869c48d16f9f10937e7398ae0dbe8b9d271408da7a0cf47f42a09e662827@23.101.78.254:30303" --vm.ewasm="metering:true" --syncmode full --mine --miner.threads 1

is the exact command line that I use

jwasinger commented 5 years ago

Thanks. I'll work on it in 10 hours (tomorrow).

jwasinger commented 5 years ago

Done here: https://github.com/ethereum/cluster/pull/97

gballet commented 5 years ago

Very nice, thank you

MaxGraey commented 5 years ago

Great bench for different VMs: https://github.com/fluencelabs/fluence/blob/master/bench/vm/README.md

Note: life in that research didn't use jit

gballet commented 5 years ago

thank you for this. This corresponds to what we're currently observing, although there are a lot of optimizations that we need to look into.