Replacing Ropsten with Görli network for Faucet and LES needs?


#1

Sup,

We currently use two fleets that are connected to the Proof-of-Work Ropsten network:

  • les.rops - A LES fleet which is currently exposed in the app a les.dev.ropsten
  • faucet.ropsten - A faucet and a set of miners we use to make available ETH for App tests.

Recently the Ropsten network has been getting worse and worse in terms of syncing. Here’s how it looks like for les.rops:

And faucet.ropsten:

Because of this I’d like to discuss switching away from Ropsten to the Görli network - also known as goerli - for both LES and our Faucet used in tests.

I’d like to get some input on this, especially from @igor, @anna, @iurimatias, @ricardo3, and @oskarth.

I’m currently deploying both les.goerli and faucet.goerli to see how easily it syncs. I will post the results in this thread.

Cheers

Related status-react issue: #7734


#2

I can already say that light syncing for Goerli network is very fast, under 15 minutes:
goerli_les_sync
Though to be fair the number of blocks is pretty low, but at least the sync was steady.


#3

Interestingly enough a full sync on faucet.goerli took only slightly more time than the light sync on les.goerli:
faucet_goerli_sync


#4

I also volunteer Lisinski, an even smaller version of Goerli we’re running nationally in Croatia. Lots of LEth to be had, lots of experimentation possible, very good explorer, a forum that’s ready to be populated with content… we all run LES-ready nodes with Whisper enabled. We’re ready to assist in any way.


#5

So, first we need to merge goerli support to the app (it is just needs to be rebased), then we can try with faucet and auto-tests. And if it works, we can replace LES Ropsten to LES Goerli in the app too.


#6

I actually lied here. Those nodes were not using light syncing, but full. I tested the light sync overnight on the Goerli faucet master node and it didn’t do anything, it did not sync at all. Not sure why but maybe there’s just no one running Goerli and LES enabled at the same time.


#7

Actually, I did managed to find three peers that do LES within Goerli network:

enode://cc3e02267b4b70763de5fe5628a625f690173ea2b65c7dde764968cdde54bf508[email protected]104.198.28.203:56694
enode://83b0be52e5dd7610d06d634b7c09b4b0bef532fe605531ff67f6448f3bb81eefe[email protected]144.76.236.199:49190
enode://45ca1cb1ded6be18579cb1d608740cfe0ee72ed9a7ee86d0bb303f82c09211771[email protected]35.204.63.247:46786

I guess it just takes a while to find them.


#8

Now the main remaining problem is that miners aren’t mining:

INFO [05-28|14:09:31.630] Imported new chain segment     blocks=1 txs=0  mgas=0.000 elapsed=459.882µs mgasps=0.000    number=670392 hash=6e983a…0c6cdf cache=1.41mB
INFO [05-28|14:09:31.630] Commit new mining work         number=670393 sealhash=58d537…9b534c uncles=2 txs=0  gas=0       fees=0               elapsed=191.076µs
WARN [05-28|14:09:31.630] Block sealing failed           err="unauthorized signer"

Not sure what unauthorized signer is about.


#9

Oh I see, since Goerli is a proof-of-authority testnet, that means mining doesn’t give you any rewards, and you have to be authorized to be in the set of pre-approved authority nodes called sealers. Apparently any new node that you want to add has to be voted on by the currently approved set of authority nodes.

So the only way would be just to get a bunch of ETH in the Goerli network from people running it, and then we can just have a faucet without the need to run any miners.


#10

We run a goerli sealer too, let me see if I can help with that.


#11

Thanks to @petty we have 10k eth on goerli faucet account: https://faucet-goerli.status.im/faucet-info


#12

@igor @jakubgs
for full replacing ropsten with faucet for e2e need our TestDapp fully supports this network - so it should be possible to request assets, deploy contract, sign transaction etc.
I’m not sure who is responsible for this.


#13

Can we include in the faucet to send also some test SNT?
We should implement this for all test networks, so it delivers some test ETH and test SNT, and after gas abstraction it can only deliver test SNT, as it would be used as gas and for all Status related things.


#14

I will deploy the TestStatusNetwork contracts in Goerli.
The current contracts for other test networks are here

For ropsten, notice that everything is the same as Mainnet, except for having a function generateTokens(address to, uint256 amount): https://ropsten.etherscan.io/address/0x34358C45FbA99ef9b78cB501584E8cBFa6f85Cef#code this can be used in faucet script.

For rinkeby the same generateTokens function is available, but the contract also implement gas abstraction features, the address of the minting contract is https://rinkeby.etherscan.io/address/0xEdEB948dE35C6ac414359f97329fc0b4be70d3f1#contracts

The goerli will be deployed just like the rinkeby one. Ropsten will be updated later on, an the address of minting will change. The token address is different (and probably wont/shouldnt change):
Ropsten https://ropsten.etherscan.io/address/0xc55cf4b03948d7ebc8b9e8bad92643703811d162#contracts
Rinkeby https://rinkeby.etherscan.io/address/0x43d5adc3b49130a575ae6e4b00dfa4bc55c71621

I will deploy this in the goerli, or do you want something special on the minting contract? Perhaps sending eth and minting at the same time, by making generateTokens payable and forwarding any ETH value send along with the transaction? Later on I can update the other contracts to behave alike.


Proposal: A move to Goerli