Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
How to get on Rinkeby Testnet in less than 10 minutes

How to get on Rinkeby Testnet in less than 10 minutes

Following instructions from the excellent https://www.rinkeby.io/

Synchronizing a Full Node

A full node lets you access all state. There is a light node (state-on-demand) and wallet-only (no state) instructions as well, and these are even faster. I'm using this for dapp development, so I want access to all state.

From the docs above:

A full node synchronizes the blockchain by downloading the full chain from the genesis block to the current head block,
but does not execute the transactions. Instead, it downloads all the transactions receipts along with the entire recent state.
As the node downloads the recent state directly, historical data can only be queried from that block onward.

Initial processing required to synchronize is more bandwidth intensive, but is light on the CPU and has significantly reduced
disk requirements. Mid range machines with HDD storage, decent CPUs and 4GB+ RAM should be enough.

Step 1: Download Geth

First, download the latest geth (1.6.1) to your laptop. https://geth.ethereum.org/downloads/

(I did it to my MacBook Air). Extract it and copy the geth binary to somewhere in your path.

Unknown whether Parity works as well. It will probably take some finagling to work with the Geth-style Genesis block.

Step 2: Download genesis block

wget https://www.rinkeby.io/rinkeby.json

Step 3: Initialize

At this point, you should probably start a tmux or screen session, so if you get interrupted during syncing it will still keep going in the background.

To run a full node, download rinkeby.json and start Geth with:

geth --datadir=$HOME/.rinkeby init rinkeby.json
geth --networkid=4 --datadir=$HOME/.rinkeby --cache=512 --ethstats="yournode:Respect my authoritah!@stats.rinkeby.io" --bootnodes=enode://a24ac7c5484ef4ed0c5eb2d36620ba4e4aa13b8c84684e1b4aab0cebea2ae45cb4d375b77eab56516d34bfbd3c1a833fc51296ff084b770b94fb9028c4d25ccf@52.169.42.101:30303 --rpc --rpcapi="personal,eth,network"

Note that the credentials here yournode:Respect my authoritah! appear to be necessary. Unknown whether you can create your own creds on stats.rinkeby.io so that you can collect your own testnet mining stats :)

SECURITY WARNINGS: We've enabled RPC and also loaded the personal module to allow testing and participating in smart contracts. However, if you do these things on a mainnet node with your unlocked wallet exposed to the internet, you could get hacked and all your monies stolen. I'll write a separate gist about a secure way to participate in a mainnet contract with real ETH.

You can download Geth from https://geth.ethereum.org/downloads/.

On a MacBook Air with a 10 MBps (standard home internet download speeds), I was able to sync all 187k blocks in < 7 minutes,

Step 4: Create an account

In a separate tmux pane or screen buffer or a separate terminal completely, create an account and save the password somewhere safe.

First, symlink the IPC file so you can geth attach to the existing geth process.

On Linux:

mkdir -p ~/.ethereum
ln -s ~/.rinkeby/geth.ipc ~/.ethereum/

On Mac:

mkdir -p ~/Library/Ethereum
ln -s ~/.rinkeby/geth.ipc ~/Library/Ethereum

After that, attach the console

geth attach

and create an account (substituting a much better password than notmyrealpassword.

Welcome to the Geth JavaScript console!

instance: Geth/v1.6.1-stable-021c3c28/darwin-amd64/go1.8.1
 modules: admin:1.0 clique:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

> eth.accounts
[]
> personal.newAccount("notmyrealpassword")
"0xb2e9fe08ca9a0323103883fe12c9609ed380f475"
> eth.coinbase
"0xb2e9fe08ca9a0323103883fe12c9609ed380f475"
> eth.getBalance(eth.coinbase)
0

You'll see a different address than 0xb2e9fe08ca9a0323103883fe12c9609ed380f475. That one's mine, provided for illustration. Save your password in a secret place, preferrably encrypted. I use Evernote encrypted text, but you can use any password manager like 1Password, LastPass, Dashlane, etc.

Leave that terminal open for now.

Step 5: Request ETH

Because Kovan and Rinkeby both use Proof-of-Authority (clique) to grant ETH, you'll need to request some to get started. However, unlike Kovan which requires you to bootstrap by requesting KETH from another human being, Rinkeby has a super-slick automated faucet, where you submit your address (copied from above) and submit a public gist.

Go to http://gist.github.com and create a gist, pasting a single line into it which is your Rinkeby address. Mine looks like this.

Copy the address of the gist, e.g. https://gist.github.com/cryptogoth/4e404fb58808a241f622afe80a659c05 Go to the Crypto Faucet section of https://rinkeby.io and paste it into the blank.

Choose an option from the dropdown which corresponds to how much Ether you need and how frequently (requesting more Ether will take longer between requests). I requested 3 ETH in 8 hours. Don't worry, you'll get your ETH in seconds, but you can't request again for another 8 hours. This is to prevent spammers from swamping the network by overpowering it with mining power and then out-spending everyone else.

This is the transaction where I received my 3 ETH: https://rinkeby.etherscan.io/tx/0xf54c0101b71c645032b786b4eb3f0f0402b665575d34903f5fd1c911aaa22ebb

Now, back in your geth console, wait for at most 15 seconds for the next block to be found, and verify your balance again

> eth.getBalance(eth.coinbase)
3000000000000000000

Woohoo! You're rich, in testnet wei :)

If you found this guide useful, follow us on Twitter at @InvisibleLearn or join us on Slack: http://invisible-slack.herokuapp.com/

ujizzy commented Jun 10, 2017

hello please did you really get any Ether i tried the faucet but am yet to see the received ether in my wallet balance?

neoecos commented Jul 2, 2017

Yep, it works i followed the procedure and i inmediatly got the etherhttps://rinkeby.etherscan.io/tx/0x68b4adbebca9fa353e51817e79f279c90f90c8929760b49db8786a0ae19092c5

kgcorps commented Jul 3, 2017

I added few more parameters to the geth start command, to run mining operation... but I get this error: Block sealing failed err=unauthorized
Any idea what have I done wrong? Had no problem with this on ropsten.

Works! Thanks for the detailed explanation.

brianfajardo commented Jul 9, 2017 edited

Super helpful! Thank you a ton for taking the time to write this out.

zubra5 commented Jul 11, 2017

I had problem with single quotation mark for --ethstats. So I used a double quotation mark for that part of a command

I'm not able to get the nodes to start syncing. Anyone else run into this issue?

screen shot 2017-07-17 at 3 59 56 pm

iam-peekay commented Jul 17, 2017 edited

Nevermind. I deleted everything and started over. It synced now :)

Also, the personal.newAccount method is missing a left parens: personal.newAccount("notmyrealpassword")

Owner

cryptogoth commented Jul 17, 2017

Thanks iam-peekay and zubra5 i'll fix the writeup with your corrections.

Owner

cryptogoth commented Jul 17, 2017

ujizzy make sure you are on the rinkeby testnet (networkid=4) when you check your balance, and that you created the address on that same network.

also, check the Rinkeby blockchain explorer, not the mainnet explorer. Let me know if that doesn't fix it.
rinkeby.etherscan.io

ijazm commented Aug 22, 2017

I am getting a error when running the command

geth --networkid=4 --datadir=$HOME/.rinkeby --cache=512 --ethstats="yournode:Respect my authoritah!@stats.rinkeby.io" --bootnodes=enode://a24ac7c5484ef4ed0c5eb2d36620ba4e4aa13b8c84684e1b4aab0cebea2ae45cb4d375b77eab56516d34bfbd3c1a833fc51296ff084b770b94fb9028c4d25ccf@52.169.42.101:30303 --rpc --rpcapi="personal,eth,network"

bash:!@stats.rinkeby.io: event not found

ijazm commented Aug 22, 2017

It works for me now when I give single quote instead of double quote for
--ethstats='yournode:Respect my authoritah!@stats.rinkeby.io'

It used to work but I am getting this error from geth today:
WARN [08-26|12:24:48] Stats server unreachable err="websocket.Dial ws://stats.rinkeby.io/api: bad status"

james18 commented Aug 28, 2017 edited

Haven't gotten any test ether, as faucet.rinkeby.io does not acknowledge my request. Nothing happens.
https://gist.github.com/james18/0c59d6c5cafd750d82a1e7f46fc36bd5 is my gist file. Can someone pls share some test ether to: 0xE0020107EA4ce4a3d7223B82588E44bB7068f5ea Thanks!

bpoppe4 commented Aug 28, 2017

I can't seem to get any either. Please send some test ether to:
0x99A53988ECb74D8276428625313Fd4157631248E

Thank you!

popofe commented Aug 28, 2017

On a Windows command shell, it works for me now when I give double quote instead of single quote for
--ethstats='yournode:Respect my authoritah!@stats.rinkeby.io'

golartes commented Sep 8, 2017

Try to request for ETH at network , but got the error "Invalid user... Boom". What is that? Help me, please

I am getting
WARN [09-12|23:29:17] Stats login failed err=unauthorized
any ideas?

When running:
eth.coinbase
Error: not supported at get. I think is needed:
miner.setEtherbase(eth.accounts[0])
but miner is not supported as well. Should I start geth with --miner parameter?

please i cant get ether on rinkeby.io ,giving error invalid user please please i need some ether to try it out my address please
0x521F137871082aAF01EEC7E10C70315d588A7772

I also got the error "Invalid user... Boom". Can somebody describe what to do in this case?

AI3EL commented Sep 17, 2017

Same as @born2net

Owner

cryptogoth commented Sep 22, 2017

Hi towobola slava239 AI3EL can you paste the link of the gist you're submitting to rinkeby.io ?
I suspect you might have a typo in the github username in that url.
e.g. here's a gist I used successfully in the past:
https://gist.github.com/cryptogoth/d6eab7b736a0052589492ebf16707cbe

Hello friends how are you

He knows someone passing by the tap, it does not work for now.

Can someone do a test by sending to my address please?

https://gist.github.com/ONLIMAKE/1ec25971d73fc870af589da4e2e5d123

To check if the faucet is or something else happens thanks friends

@james18 same here, I see you've got some ETH now, could you please send some to 0x7FB15f26BD6756d49eE55b548eCc5376bf548C01

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment