helium / miner

Miner for the helium blockchain
Apache License 2.0
609 stars 266 forks source link

Enhance run.sh to use multi-sig #578

Open evanmcc opened 3 years ago

evanmcc commented 3 years ago

Instead of generating a singular master key, we should change this code to optionally generate a set of multi-keys.

ke6jjj commented 3 years ago

@evanmcc given that this is a "good first issue", can you describe what this enhancement means? I'm puzzled, but if I understood, I think I could take a stab at it.

evanmcc commented 3 years ago

Hi Jeremy, thanks so much for your interest.

Multisig is a feature that we've yet to enable on the main network (soon, @abhay!). It involves having several keys, of which a majority are needed to sign any given vars transaction or rescue block.

run.sh stands up a test cluster on your machine, but currently it uses the old single key code. @Vagabond generated the following file when he was testing the issue locally: https://gist.github.com/Vagabond/607881f7ffaf64c357cd5c7212a3074d

The instructions there are for standing up a run.sh cluster and then converting it. The task here would be to change run.sh so that it generates several keys at the start and stands up the cluster using those keys, rather than starting with a single key and switching over. It's possible that all the work here is in shell, but you might need to write some erlang or cli tools to convert the files into something that miner genesis forge can ingest.

If this is of interest, I'd start by reading the script and the code for the cli commands that it calls. If you hit any roadblocks, please let us know, either here or on discord.