# 0L Rex Devnet Configuation Instructions
[Source Link](https://discordapp.com/channels/833074824447655976/943220507560542268/958134848583762010)
[Here](https://github.com/OLSF/libra/blob/d70716fb154339f4db71ae05edf8064013327b29/ol/documentation/core-devs/provision_dev_net.md) is the main doc to setup a testnet, needs a bit maintenance:
Out the top of my head, here are the steps I remember:
## Devnet servers specs
2 Cores, 8 Gb RAM, and 50Gb disk space
## 1. All the rex node runners need permission to write to the https://github.com/OLSF/dev-genesis repo (later a GitHub token needs to be generated and used on the node)
Current list of OLSF GH team members [here](https://github.com/orgs/OLSF/people).
Permission list -
- [ ] @daniyal
- [ ] @thenateway
- [ ] @o0l0o
## 2. Cloning OLSF/libra , OLSF/dev-genesis and OLSF/dev-epoch-archive repos on the node.
## 3. Installing all the dependencies (libra/util/setup.sh):
``sudo curl -sL https://raw.githubusercontent.com/OLSF/libra/main/ol/util/setup.sh | bash``
## 4. Generate a GitHub token, place it in a (new) file called ~/.0L/github_token.txt
Token list -
- [ ] @idlezone
- [ ] @thenateway
- [ ] @0olo0
## 5. Setting up a persona, there are 5 default personas, alice, bob, carol, dave and eve.
For example the alice node environment needs to setup by running this command:
``export NODE_ENV=test NS=alice TEST=y``
* Alice node, run by @daniyal: 148.251.89.142
* Bob node, run by @thenateway: 137.184.191.201
* Carol node, run by @o0l0o: 91.229.245.110
New nodes have to create a new layout (checkout the Genesis ceremony on the provision_dev_net.md doc)
## 6. Build binaries
``source $HOME/.cargo/env``
``cd </path/to/libra/source/>``
``make bins && make install``
## 7. Generate keys
``onboard keygen``
## 8. Run ```make check```.
Make sure below info is correct:
data path: /root/.0L
account: e660402d586ad220ed9beff47d662d54
github_token: ghp_xxx
ip: 127.0.0.1
node path: /root/.0L
github_org: OLSF
github_repo: dev-genesis
env: test
devnet mode: y
devnet name: carol
devnet mnem: giraffe......
## 9. Edit Makefile under Libra folder:
Change from:
```GENESIS_REMOTE = 'backend=github;repository_owner=${REPO_ORG};repository=${REPO_NAME};token=${DATA_PATH}/github_token.txt;namespace=${ACC}'```
Change to:
```GENESIS_REMOTE = 'backend=github;repository_owner=${REPO_ORG};repository=${REPO_NAME};token=${DATA_PATH}/github_token.txt;namespace=${ACC}-oper'```
Change from:
``owner-key:
cargo run -p diem-genesis-tool ${CARGO_ARGS} -- owner-key \
--validator-backend ${LOCAL} \
--shared-backend ${REMOTE}``
Change to:
``owner-key:
cargo run -p diem-genesis-tool ${CARGO_ARGS} -- owner-key \
--validator-backend ${LOCAL}-oper \
--shared-backend ${REMOTE}``
## 10. Running ``make dev-register`` from OLSF/libra only for the first time to setup the node.
At the end, there will be a error: Failed to write 'pull request' to github storage. But I think that does not matter.
## 11. Running ``make dev-genesis`` then ``make start``
Here is a list of our IPs and personas we've tried to setup:
* Alice node, run by @thenateway: [IPADDRESS]
* Bob node, run by @0olo0: [IPADDRESS]
* Carol node, run by @idlezone: [IPADDRESS]