2017-05-27 03:28:22 +00:00
Intro for new developers and witnesses
2017-05-25 09:13:59 +00:00
------------------------
2017-05-27 20:45:14 +00:00
This is a quick introduction to get new developers and witnesses up to speed on Peerplays blockchain. It is intended for witnesses plannig to join a live, already deployed blockchain.
2017-05-25 09:13:59 +00:00
2017-05-27 16:24:26 +00:00
Starting A Peerplays Node
2017-05-25 09:13:59 +00:00
-----------------
2017-05-27 03:28:22 +00:00
For Ubuntu 14.04 LTS and up users, see this link first:
2017-05-25 09:13:59 +00:00
https://github.com/cryptonomex/graphene/wiki/build-ubuntu
and then proceed with:
2017-05-27 03:28:22 +00:00
git clone https://github.com/pbsa/peerplays.git
cd peerplays
2017-05-25 09:13:59 +00:00
git submodule update --init --recursive
2017-05-27 21:58:30 +00:00
cmake -DCMAKE_BUILD_TYPE=Release .
2017-05-25 09:13:59 +00:00
make
./programs/witness_node/witness_node
2017-05-27 20:45:14 +00:00
Launching the witness creates required directories. Next, **stop the witness** and continue.
2017-05-25 09:13:59 +00:00
2017-05-27 20:45:14 +00:00
vi witness_node_data_dir/config.ini
2017-05-29 16:46:58 +00:00
p2p-endpoint = 0.0.0.0:9777
2017-05-25 09:13:59 +00:00
rpc-endpoint = 127.0.0.1:8090
2017-05-27 20:45:14 +00:00
seed-node = 213.184.225.234:59500
Start the witness back up
./programs/witness_node/witness_node
2017-05-25 09:13:59 +00:00
Then, in a separate terminal window, start the command-line wallet `cli_wallet` :
./programs/cli_wallet/cli_wallet
2017-05-27 16:24:26 +00:00
To set your initial password to 'password' use:
2017-05-25 09:13:59 +00:00
>>> set_password password
>>> unlock password
A list of CLI wallet commands is available
2017-05-27 03:28:22 +00:00
[here ](https://github.com/PBSA/peerplays/blob/master/libraries/wallet/include/graphene/wallet/wallet.hpp ).
2017-05-25 09:13:59 +00:00
2017-05-25 09:32:05 +00:00
Testnet
----------------------
- chain-id - 82c339d32256728bcc4df63bcc3e3244f6140a16fef31f707a6613ad189156ae
2017-05-27 20:45:14 +00:00
Register your username at the faucet address
---------------------------
2017-05-27 16:24:26 +00:00
https://595-dev.pixelplex.by/
2017-05-25 09:13:59 +00:00
2017-05-28 01:54:20 +00:00
Use the get_private_key_from_password command
2017-05-27 20:45:14 +00:00
---------------------------------
2017-05-28 01:54:20 +00:00
You will to generate owner and active keys
2017-05-27 16:24:26 +00:00
```
get_private_key_from_password the_key_you_received_from_the_faucet your_witness_username active
2017-05-27 20:45:14 +00:00
get_private_key_from_password the_key_you_received_from_the_faucet your_witness_username owner
2017-05-27 16:24:26 +00:00
```
2017-05-27 20:45:14 +00:00
This will reveal an array for each `['PPYxxx', 'xxxx']`
2017-05-27 16:24:26 +00:00
2017-05-27 20:45:14 +00:00
import_keys into your cli_wallet
-------------------------------
- use the second value in each array returned from the previous step for the private key
2017-05-27 16:24:26 +00:00
- be sure to wrap your username in quotes
2017-05-27 20:45:14 +00:00
- import all 3 keys received above
2017-05-27 16:24:26 +00:00
```
2017-05-27 20:45:14 +00:00
import_key "your_witness_username" xxxx
import_key "your_witness_username" xxxx
2017-05-27 16:24:26 +00:00
```
2017-05-27 20:45:14 +00:00
Upgrade your account to lifetime membership
--------------------------------
2017-05-27 16:24:26 +00:00
```
upgrade_account your_witness_username true
```
2017-05-27 20:45:14 +00:00
Create your witness (substitute the url for your witness information)
-------------------------------
- place quotes around url
```
create_witness your_witness_username "url" true
```
**Be sure to take note of the block_signing_key**
IMPORTANT (issue below command using block_signing_key just obtained)
2017-05-27 16:24:26 +00:00
```
2017-05-27 20:45:14 +00:00
get_private_key block_signing_key
2017-05-27 16:24:26 +00:00
```
2017-05-27 20:45:14 +00:00
Compare this result to
2017-05-25 09:13:59 +00:00
2017-05-27 20:45:14 +00:00
```
dump_private_keys
```
2017-05-27 21:37:41 +00:00
You should see 4 pairs of keys. The last pair should match your block_signing_key and this is the one you will use in the next step!
2017-05-27 20:45:14 +00:00
Get your witness id
-----------------
2017-05-27 16:24:26 +00:00
```
2017-05-27 03:28:22 +00:00
get_witness username (note the "id" for your config)
2017-05-27 16:24:26 +00:00
```
2017-05-25 09:13:59 +00:00
2017-05-27 20:45:14 +00:00
Modify your witness_node config.ini to include **your** witness id and private key pair.
-------------------------
Comment out the existing private-key before adding yours
2017-05-27 16:24:26 +00:00
```
vim witness_node_data_dir/config.ini
witness-id = "1.6.x"
2017-05-28 01:21:59 +00:00
private-keys = ['block_signing_key','private_key_for_your_block_signing_key']
2017-05-27 16:24:26 +00:00
```
2017-05-27 21:27:47 +00:00
start your witness back up
2017-05-27 20:45:14 +00:00
------------------
```
./programs/witness_node/witness_node
```
If it fails to start, try with these flags (not for permanent use)
2017-05-27 16:24:26 +00:00
```
2017-05-27 16:48:08 +00:00
./programs/witness_node/witness_node --resync --replay
2017-05-27 16:24:26 +00:00
```
2017-05-25 09:13:59 +00:00
2017-05-27 20:45:14 +00:00
Vote for yourself
--------------
```
vote_for_witness your_witness_account your_witness_account true true
```
2017-05-27 21:31:25 +00:00
Ask to be voted in!
--------------
2017-05-25 09:13:59 +00:00
2017-05-27 03:28:22 +00:00
Join @Peerplays Telegram group to find information about the witness group.
2017-05-27 16:36:00 +00:00
http://t.me/@peerplayswitness
You will get logs that look like this:
```
2070264ms th_a application.cpp:506 handle_block ] Got block: #87913 time: 2017-05-27T16:34:30 latency: 264 ms from: bhuz-witness irreversible: 87903 (-10)
2071000ms th_a witness.cpp:204 block_production_loo ] Not producing block because slot has not yet arrived
2072000ms th_a witness.cpp:204 block_production_loo ] Not producing block because slot has not yet arrived
2073000ms th_a witness.cpp:201 block_production_loo ] Not producing block because it isn't my turn
```
2017-05-27 21:31:25 +00:00
Assuming you've received votes, you will start producing as a witness at the next maintenance interval (once per hour). You can check your votes with.
```
get_witness your_witness_account
```
2017-05-25 09:13:59 +00:00
2017-05-27 03:28:22 +00:00
Running specific tests
----------------------
2017-05-25 09:13:59 +00:00
2017-05-27 03:28:22 +00:00
- `tests/chain_tests -t block_tests/name_of_test`
2017-05-25 09:13:59 +00:00
2017-05-27 03:28:22 +00:00