← Back to team overview

mimblewimble team mailing list archive

It's twitching!


I can't reasonably use "it's alive" quite yet. It goes like this: you can run a first server, configure it to mine (at Cuckoo12 for now, we only have a non-optimized CPU miner integrated) and connect a 2nd server to it. The 2nd server will sync blocks and then receive new blocks as the first find some more. You can also start a 3rd server, configure it to connect to the 1st or 2nd one and it will discover the other and sync as well.

To play with it, compile at the root and you'll get a binary at target/debug/grin. Place that in your path. Running 'grin help' should print a helpful message. Then create 3 directories for each server (the .grin db dir is created wherever you run the command from for now). Run the first server:

serv1$ RUST_LOG=info grin server run --mine run

Let it find a few blocks. Then open a new terminal in the directory for the 2nd server and run (check 'grin help server' for the options):

serv2$ RUST_LOG=info grin server -p 13424 --seed "" run

You'll need to give it a little bit, as it hangs for 10 sec trying to get more peers before deciding it'll only get one. Then it will sync and process and validate new blocks that serv1 may find. The "coinbase" for each block is generated with a random private key right now. You can then run a 3rd server, seeding either with the 1st or 2nd and it should connect to both and sync as well.

That was it for the Friday demo. Now on to sending transactions (with a gentle nudge toward Myrtle for a transaction pool ;-)).

- Igno