Remy and Yorick demonstrate how to setup a Ropsten node with eth-docker

EthStaker Workshops and Technical Guides · January 2021 · 29:50

Remy and Yorick return for this EthStaker Workshops and Technical Guides session to demonstrate setting up a node on the Ropsten testnet using eth-docker. The workshop walks through a docker based setup rather than a manual install, aimed at operators who want a repeatable way to spin up testnet infrastructure. It fits EthStaker's ongoing series of hands on guides for validator operators.

Topics

From EthStaker Workshops and Technical Guides, hosted by Eth Staker.

Transcript

hello everyone uh my name is remy i'm from the eavestaker community and i'm joined uh by um yorick from e-sticker as well hello eric hello there how are you doing today remy i'm doing great i'm talking about roxton today yes we'll have a nice tech demo today with um seeing how we can use robston and test a merge net because um if you guys don't know taurus robson is going through the merger soon and you can help with that and you can try to set up your own node on robston and that's what we'll be showing today so first let's um let's ask the obvious question what is robston can you tell us you're it

sure robsten is an ethereum test net it will be one of the first test nets to go through the ethereum merge i think is the first one that goes through with what you can could consider really kind of a maintenance setup right so whatever you do on robston now midnight will look almost exactly the same because we had a few of these uh test nets before right but there were quite different yeah so we had kiln which um needed a lot more technical ability and and you know sometimes like source builds of of things and so on um very very experimental still and then of course we have the mainnet shadow forks and some dev networks that have been going on all along robson i

would say is the first that where an existing test that is being taken robson has been running for a while um it is now being merged robson has been alive for over five years if i'm not entirely mistaken yeah um it's been alive for a long while now but i believe with this uh next merge it's gonna be its end of life right this is right yes um for all intents and purposes right so there are no in there's no intent to give robs then the next hard fork after merge so sometime after merge we all get withdrawals not that we care right money who wants that um if you can run docker containers um and so it will not get that uh

withdrawal hard fork robson of course can live on as long as at least one validator is active on it but yeah it'll be abandoned after merge and so what's the main differences between like all these desnet and what's going to happen on mainnet for instance that's a really good question right yeah so um the test nets of course is a lot smaller um but they are still basically a minute-ish configuration um robson is a proof-of-work network just like ethereum mainnet sepolia which is another one that will be merged is a proof-of-work network gurley which will be merged is a proof of authority testnet after merge maybe what matters more to our viewers right

after merge which testnets are still around where can i still be testing after merge you will have most likely two test nets gurley the one where you can't get any girly eth um although i believe sticker has just found a way to solve that we tried very hard to solve that problem yes with bright id which sounds awesome really smart idea to do that i don't think uh bots can bright id themselves and and if they can we have bigger problems so girly will still be around it will be non-permissioned um so anybody can run a girly validator it'll actually merge with what is today proper so those will continue on we expect you will be able

to withdraw all your ethernet protector eventually so that's that's great right you can just continue the way you have already if you're already testing on pratter the girly merge is exactly that it's basically a gurley and prata merge so that's maybe the to some extent that's the closest you could come to mainnet because you already have existing validators on it sepolia is a proof of work test net it will also be merged it will be 100 permissioned and we'll just have a very small permissioned validator set that will be run by the ef and so i don't know if you guys have been following the recent news with um

robsten but there was many different hiccups um i could say that um there was some changes with the dates and when the merge would happen and like there was a bunch of different changes um can you tell us a little more about these sure so if i look at my trusty little calendar here robston um the total terminal difficulty was announced uh i think somewhere around here right uh monday last week something like that maybe a little earlier maybe on friday 20th i don't remember somewhere here we announced when robsten would merge this is done with something called total terminal difficulty because as proof of work it's

kind of hard to say you can't just say on this block right um because that could cause issues they just say when the total difficulty over time has reached this value then we merge and they calculated something that would happen here the eighth oh ish plus minus a minus a day right now anybody can mine on robson it's completely permissionless and has a tiny difficulty as seen tada here currently mining and robsten with a 20 gigahash difficulty it was actually 10 last week so what did somebody do some enterprising soul came and said wow this is cheap rented a bunch of hash rate

and got through total terminal terminal difficulty i think sometime friday or whatever it was thursday or friday they reached it before the robson beacon chain the proof of stake has actually been launched oops this is great right so this allows um acd or cordials and ef ethereum foundation to think about this and go well when could this happen on minute short answer no um and then two what do we do about it and and and how what what processes should we have in place right what went wrong here and so they said well one this can't happen i mean it because you can't just 2x

um hash rate on mainnet it's prohibitively expensive and if you could you could 51 attack maintenance anyway and then we have other problems right yeah and then two what should we do about it so what they've landed on is one the beacon chain should probably be live before a ttd is announced that really only matters for um the robston and well too late for robson for the supolio test net because for girly it's already live for me that it's already live right and then two we should probably make sure now that people are used to adjusting the total terminal difficulty to begin with a stupidly large number

will be used you know years into the future potentially and then as we get closer to the actual merge date people will be asked to adjust the ttd in their client um that might just be a client update it might be a manual change whatever it is but it means that the tooling has to be ready to do this and people have to know that this is what expected what is expected of them right they're expected to adjust the ttd so that's that's what we're doing first with uh with robsten now and then with the other testnets and then with mainnet awesome so why don't we go uh straight to the point here and try to set up our own robsten node um before we do that i want to talk a little bit about timeline

sure it is now the 31st right let me go back to your screen yeah yep it's now the 31st here we are tuesday the 31st the robsten beacon chain went live on monday bellatrix hard fork which is when the beacon chain becomes merge ready is scheduled for i believe friday yep and at that point both the proof of work chain and the proof of stake chain the beacon chain are merged ready and then the merge itself should still happen ish around wednesday and sometime in between here a new ttd will be communicated and will have to be used by

all people who are running on the test net so that their client actually correctly merges around this time that's my understanding as well and i believe we might have a another like release of clients right we might have another release of clients that built this in yes and um also of course each client supports an override of the ttd so you know if if another release isn't available or people don't want to run the new release they might be able to just put a new override ttd in and run it that way that's correct yeah okay all right so so now we're going to demo this to the heart of our tech demo here right exactly um i'm going to use my own

tooling as docker it has a merge get ready branch with a merge ready md explanation of how this works we can link that in the description later here this link we will do the link here up and then of course we have the sticking launch pad from the ethereum foundation itself for robston where we should be able to deposit which i actually haven't tried yet so we'll see how that goes so first we need a throwaway ether dress and metamask i say throwaway because as part of this i'm going to actually use the stacking deposit cli on on an unsecured machine not air gap etc etc so you know just best practice use a

throwaway address i think i have one here that's my kinsugi address that's where it started and it's currently one thousand drops in each so all set and then fund this address with testnet eth faucets do get hammered we have the esteka discord where we can help you get in funds at least up to a certain point yes you know so we'll we'll do our absolute best okay i'm going to show this with linux because that's what i'm familiar with and what i have should maybe work on mac os but i i don't have a machine to actually test it there so some people are successful others not so much we're gonna start with installing docker composer i've

actually already done this i'll just show you what it looks like and that's a very simple step if you're used to working with packages on ubuntu right yeah it's just a package install exactly so nothing special there nothing special here at all if i can remember my pseudo password and this will just run through here there we are everything already newest version i've had already done this right make your user part of the docker group i'm actually not going to show this but that's the same thing my username is whatever user is called this is optional but it makes it easier because the next

commands then don't need sudo right maybe if you can zoom your um browser a little uh we could see better there you go how's this yeah much better and now we're gonna clone this tool and get into the branch this merge get ready branch and play with it so git clone just explain what it does we are grabbing at docker we're putting it into a merge ready directory which you can really call anything you like you want to change this do then we change into this directory we get the merge get ready branch and we check it out so ta-da

this is now grabbing this from github and we are on the merge get ready branch in the merge ready directory again whatever you want to call this directory that is entirely up to you and now we're going to configure this so we're going to just run sdconfig and configure this thing all right we have one choice robson testnet these two have not been tested probably don't work so we're going to do ethereum node so consensus execution and validator client okay since this is just for uh testing and i have another one ready um

[Music] any particular idea here what you want to run um if any of those are working and just select the random one okay random um do you have a 1d6 yes i have a random app on my phone let me try to maybe it'll be longer to find the app and start it but there you go how many clients we have we have five right five yep all right so random between one and five and the result is four four we're on our on star okay and random between one and four what are we running for our execution client the app open and do the one between four and we had a one b

um we actually cannot rapid sync there's no inferior for robson's we're going to say no uh grafana dashboards why not nothing wrong with that say yes are you sure there's no checkpoint sync endpoint for robston um i am not let me see maybe if you have one let me let me just it's not what i wanted i mean we'll pass uh that point but just for i don't think they do but check while you're checking so when i explain what this is what is the address you want transaction rewards to be sent to okay this is new right this is one of the things that needs to be done for merge by everyone this is where you can um kind of practice this so after merge you get your regular rewards as you do

now on the beacon chain and they go to to the balance of your validator and you cannot withdraw them right now fine but you also get something called priority fees are paid out whenever you propose a block and they get paid out to you directly immediately into your wallet which is awesome if you want to just use those fees right away right but which is also really scary because depending on the client one of two things happens if you don't give it that one it just doesn't start up that actually is not too scary hopefully your monitoring detects that beacon chain yells at you and you do something about it right

or two there are some clients actually say you didn't give us a rewards address i guess you meant zero x zero zero and they burn it that's a good um segue to you should definitely put your own oh hell yeah set this address right i'll give you mine if you want to use mine i'll send you my address and you can use that one too sure so i'm just gonna use this throwaway kitsuki kiln now the address here yeah i'm gonna say we're gonna use that one and put that in here um i'm gonna try something uh and add yada to it and see whether my my checking works

is not a valid ether dress aha so we actually had people panic at this point and kind of go ah you know that the client stopped running right they're like my lighthouse client no longer works it says yada is not an etherdress what's going on so now this thing actually wants you to put in a valid ether address that's a good check to do there it's a it's a very simple check i want to say that as well you know please check your own address it just checks that it starts with 0x is 20 bytes long that's it also very basic test okay what is the override ttd for the

robson network so we talked about this this is the default override ttd right now which will be hidden i think in about 350 years um i think that's about right actually something like that i'd would like to keep this here but there will be a new override ttd that will be communicated and that could go in here then yeah what graffiti we'll just call this f staker and that's it that's grabbing this stuff and this part is mostly waiting for eve docker to build the containers and the images and that's right start the clients after that and then we're gonna start clients

that's right but before we start clients we're gonna grab ourselves a um a key because we want to deposit as well right and and i actually have one running already so i'm going to kind of swap back and forth between the two environments sure so let's go here and we're going to say what's next okay run docker compose run deposit clenu s1 withdrawal address your test address so why am i doing f1 withdrawal address here um you could really do this without the reason i'm doing it with here is when withdrawals are enabled this is

where it will go your your ether dress right under ops and of course withdrawals will not be enabled so we don't care but we're planning for other networks right but we're practicing this if this is not set then you'll have to use your mnemonic and set it at some later date if it is set it cannot be changed your withdrawals will always go here and even if someone grabs your mnemonic and steals it from you they cannot change this it will always go to you so i think this is a good idea so that's why i'm doing it it is a good idea as long as you are in control of that address too you absolutely have to

verify that you are in control of that address and you got that address right yes because again you can't change it once it is set this is true now or later you're going to see a mnemonic here but it's throwaway we're going to throw it away after so this is now just the staking deposit cli standard as it comes from the team that writes that you are setting an ether address please ensure that i have your control absolutely 100 right yes we want to run one validator please and we're going to do a password for it this is just for the key store itself and then this is my mnemonic here which

i would now typically write down and keep safe etc and not put on youtube and i'm going to put that in here and it is creating my keys okay now these keys are in dot eth dot uh slash valid keys so this is a hidden um if you're looking at this through like an ubuntu desktop and inside are the deposit data json and the keystore all right see whether my instructions tell me what to do next import the keys deposit for this key we're going to do that in a minute i'm going to flip around and just first import my keys and the orders are not very important there the order is not terribly important it

is important maybe that you first have the keys before you start stack but you can also start the stack and then stop it again and import the keys i mean this is not terribly important so we're gonna grab this and we're gonna hope that this works okay so um what is this right fastify course has been deprecated this is load star i can do nothing about that it just does that um this looks like a small part in it but hopefully nothing terrible so this was the password and there we go not great okay i have an error

this is probably somewhere in my code so i will fix that not sure where the error is but i'll find it by the time this goes live hopefully it's fixed so this is part of it right a lot of this stuff is new as to how it hangs together and so it is absolutely possible um that some of this stuff breaks this one did which is totally fine which is totally fine we'll we'll this will get fixed you know by the time this goes live i expect this particular error has been fixed okay good great so now we shall be depositing for this for that i'll actually use one

that i'm i'm actually using and i will be validating for so i'm gonna say become a validator um i'm gonna mix next next through this but if this is real and um something like mainnet please do read this i understand i need to deposit you know and i know how to run a validator and my it needs to be on online especially if you're not aware of all those not aware all this by by all means do read this you know um this is really important your mnemonic has to be available to you if somebody else has it that's no good you know i cannot withdraw until until until after the merge actually

up to six months or later after and that this is early adoption and so on all right continue um we already set up a node so we'll just skip through this part we want one validator keeping my key saved continue and then we're just gonna grab the file this one deposit data and say i'm gonna use metamask hopefully at least the deposit works i believe i've had this issue before with the launchpad where you have to connect or like open metamask first and the launchpad doesn't see it and maybe you need to refresh the page

okay so now we're broken with metamask which again we're not gonna troubleshoot right this second in theory i would now deposit for this on launchpad right at that point let me just uh go into my robston thing and stop things here because they're probably going to be in the way at that point assuming that my um import actually worked i'll go and do an sd up okay all this stuff is starting

and now i'm pretty much done i can take a look at the logs for say the consensus client which is load star here and i see it's initializing beacon state and so on is looking for peers right it's doing its thing and then i can look at the execution which is besu and it is now sinking the robson chain so is that something people that are testing this should be expecting like when you look at those logs what exactly are you looking at uh what you're basically looking for how you know is this thing sinking is it working it will take a minute right whenever in a minute i think uh bazu

takes more than a day to sync robsten we see here the pivot block header is 12 million because robson has been around for five years this can take a day plus to sink so people should assume that it'll take a while and that edition need to to wait there until they're close just wait that out for sure you know if you see this for example right now is searching for peers right it needs to find peers if you see it cannot find peers then maybe you haven't opened the peer-to-peer ports right if you find it's telling you it cannot actually talk um now it started syncing and i'll take it at 1.3 hours on the load star side

but this will take much longer right if you see errors that the execution chain and consensus chain cannot talk to each other that's a bug and needs to be fixed those kind of things so the logs there should be quite obvious if you read them but like if you have any uh dots of what you're seeing any errors that you are not sure about make sure to get in touch with us at the eve sticker community and we'll try to help you there that's exactly it um this is all very experimental still so do expect bugs either between the clients or just an eth docker itself as you saw and we'll go fix those the client teams have to fix the client box and um we'll

go from there hopefully this gives you then a good idea of how to get ready for mainnet but i should also say there's one part here that you could do after as you get ready for mainnet that we are not currently showing and cannot be testing because it's not ready and that's called mev boost so it's a little bit of an outlook to a future demo mav maximal extractable value is absolutely something we're interested in flashbacks has something called mev boost which will run in this same kind of environment in your on your node will talk to relays get mav boosted blocks for you to propose and get paid on to the same fee recipient that we showed earlier that that you know ether dress you control that you put in that your

priority fees go to and we'll we'll demo that just as soon as it's ready on kiln it's not even ready on kiln yet never mind robson so when do you expect those to be ready uh for us to show oh goodness i don't know man um i'm hoping sometime june you know all right we'll be ready maybe even maybe tomorrow right because june starts tomorrow yeah yeah i don't think tomorrow uh they're still working on some technical issues on some inter issues between flashbots and lighthouse you know that all needs to be the interrupt needs to work and then we need to run it for a bit and see that it actually works and that the relay works and so on but yeah i mean once it start once it happens it could be fast maybe a week maybe two you know optimistically

and we'll make sure to help you guys if you need any help with like setting up all these tools like there's a few config exchange that you will need to to do for the merge and we will guide you through all of those right absolutely yeah that's what we're here for oh boy we're not waiting for this this is probably not gonna work you want to try the deposit again i'll try it one more time but probably not is what i'm thinking try try like once more and see if one more time launch pad wants to cooperate with metamask we'll see maybe i'm also in the wrong browser i'm

in chrome that should work though right continue should work i'm asked that's a good sign weird right uh let's use the kinsugi one connect to consumi yes we do allow that there you go continue robsten testnet one understand the risks i cannot withdraw i have slashing risks this transaction is not reversible my if goes into the deposit contract and does not come back out i know how to check the deposit address and i'm not gonna take a check it now deposit once yes send deposit

we might actually be able to deposit how exciting 32 eve drops the knees there they go okay wonderful we deposited i think that's it that's i think that's pretty much it um thanks for joining us this was a another quick tag video from both of us uh hopefully we'll be able to do this tag demo with like the mev boost um side card for the merge as well because like a bunch of people will be able to to do it as well on their own and it's quite important because like

it's free money so eventually we want to get there and show it to you guys as well robston.beacon seems to be down as well oh that's unfortunate a lot of work still there's a lot of these tools that are being worked on right now because this is all being tested right yes absolutely that's the final test net awesome that's why we do test that so we don't see this on midnight yeah thanks thanks to you guys thanks for joining us um and we'll um see you next time thank you bye