Tezos baking howto
This howto is valid for Betanet on Ubuntu or Debian
Setup
Prereq
You have to install some dependencies. In debian / ubuntu run:
sudo apt-get install build-essential git m4 unzip rsync curl libev-dev libgmp-dev pkg-config libhidapi-dev
If you are using ubuntu, install bubblewrap using this deb file:
wget http://security.ubuntu.com/ubuntu/pool/universe/b/bubblewrap/bubblewrap_0.2.1-1_amd64.deb
sudo dpkg -i ./bubblewrap_0.2.1-1_amd64.deb
If you are using debian, install bubblewrap using the apt-get:
sudo apt-get install bubblewrap
Create an user and switch to it:
adduser tezos
adduser tezos sudo
su - tezos
Install the node from sources
Checkout the code:
git clone https://gitlab.com/tezos/tezos.git
cd tezos
git checkout latest-release
Install Opam (version 2.0 is required):
wget https://github.com/ocaml/opam/releases/download/2.0.0-rc4/opam-2.0.1-rc4-x86_64-linux
sudo mv opam-2.0.1-rc4-x86_64-linux /usr/local/bin/opam
sudo chmod a+x /usr/local/bin/opam
opam init --comp=4.09.1 --disable-sandboxing
opam switch 4.09.1
opam update
eval $(opam env)
Update Opam (if you have already installed opam):
opam update
opam switch 4.09.1 # Run this only if you are not already using 4.09.1 ocaml version
eval $(opam env)
Then compile the tezos node:
make build-deps
make
Update the node
git pull
make build-deps
make
If it fails:
opam update
opam pin list -s | xargs opam pin remove
make build-deps
make
Node configuration
First generate a new identity and setup config:
./tezos-node identity generate
Fast sync from a snapshot
First download the latest snapshot for tezos 0.3 from here, and uncompress it: https://www.tzdutch.com/quicksync/
Then run the following command:
./tezos-node snapshot import ../mainnet-*
And run the node normally.
Start the node
cd tezos
nohup ./tezos-node run --rpc-addr 127.0.0.1:8732 --connections 10
Funding
Redeem a faucet (only for testnet)
Get a faucet from https://faucet.tzalpha.net/ (it works both for zeronet and alphanet)
Then reedem the faucet:
./tezos-client activate account "my_account" with "./faucet.json"
./tezos-client get balance for "my_account"
You need to have enough tez in the delegate in order to bake. So if the balance is less than 10k, redeem another faucet.
Redeem your contribution (only betanet/mainnet)
First, activate your account using the kyc code:
./tezos-client add address fundraiser <tz1...>
./tezos-client activate fundraiser account fundraiser with <activation_key>
You can check if the account has been activated by getting its balance:
./tezos-client get balance for fundraiser
Then in order to access your funds importing your private key type the following command and write your private data when asked:
./tezos-client import fundraiser secret key "my_account"
Please be careful, you are importing your tezos private keys!
Baking
Register a delegate
Register a new delegate:
./tezos-client register key "my_account" as delegate
Start the baker
Use screen to start the baker and run it in background; it will ask you for the encryption key.
cd tezos
./tezos-baker-003-PsddFKi3 run with local node "/home/tezos/.tezos-node" "my_account"
cd tezos
./tezos-endorser-003-PsddFKi3 run "my_account"
cd tezos
./tezos-accuser-003-PsddFKi3 run
Voting
If you don't want to bake, you can vote another delegate. To vote a delegate, you should first "originate an account"; consider the implicit account called my_account2 with 6900XTZ, delegating to my_account:
./tezos-client originate account "my_originated" for "my_account2" transferring 6900 from "my_account2" --delegate "my_account" --delegatable
If you already have an originated account, you can delegate running:
./tezos-client set delegate for "my_originated" to "my_account"
Backup your keys
You private keys are located in:
- /home/tezos/.tezos-node/identity.json
- /home/tezos/.tezos-client/secret_keys.json
References
- http://doc.tzalpha.net/introduction/howto.html
- https://opam.ocaml.org/doc/Install.html
- http://doc.tzalpha.net/whitedoc/proof_of_stake.html#proof-of-stake
Donate
Feel free to donate TEZ to tz1THsLcunLo8CmDm9f2y1xHuXttXZCpyFnq or ETH to 0x18f081247ad32af38404d071eb8c246cc4f33534 or BTC to 13TRVwiqLMveg9aPAmZgcAix5ogKVgpe4T
I think I set up everything correctly. My node is running and showing output from prevalidator and validator. Is there a way I can be sure everything is running correctly and I am baking?