Follow the steps below to set up the project on your environment. If you run into any problems, feel free to leave a GitHub Issue or reach out to any of our communities above.
You need to have Docker and docker-compose installed
Copy dotenv to .env
Open .env and edit settings
PUBLIC_IP_ADDRESSis an IP address of your docker host, this should be 10/8 or 172.16/12 or 192.168/16 ip address (ex. local net ip address)ACCOUNT_NUMBERuseTNB Account Managerapp to generate a new account for test purposes
Login to Github's registry
docker login docker.pkg.github.comUse your github's credentials or personal key if you have 2FA configured.
Run:
docker-compose up # add -d to detach from consoleThis will start a dev network to work with, network consists of PV, 2x CVs, Bank and all the needed services (celery, db, redis).
On a first run it will take some time to provision and configure test network settings.
If something failed, deleting postgresql-data and redis-data volumes might solve the issue (refer to docker volume cli), and try previous command again.
As a result
http://$PUBLIC_IP_ADDRESS:8001 - PV
http://$PUBLIC_IP_ADDRESS:8002 - CV 1
http://$PUBLIC_IP_ADDRESS:8003 - CV 2
http://$PUBLIC_IP_ADDRESS:8004 - BANK
You can add those to your TNB Account Manager app
To run all tests in parallel:
docker-compose run pv pytest -n auto
# or
docker-compose exec pv pytest # if docker-compose run is runningTo monitor Celery tasks:
# For PV
docker-compose exec celery_pv celery flower -A config.settings --address=127.0.0.1 --port=5555
# For CV n. 1
docker-compose exec celery_cv1 celery flower -A config.settings --address=127.0.0.1 --port=5555
# For CV n. 2
docker-compose exec celery_cv2 celery flower -A config.settings --address=127.0.0.1 --port=5555
# For BANK
docker-compose exec celery_bank celery flower -A config.settings --address=127.0.0.1 --port=5555This guide targets a unix environment however it is possible to perform this setup on Windows by installing Cygwin here.
When installing Cygwin ensure you add the following packages in the setup wizard choosing the most up-to-date version for each:
- python3
- python3-devel
- pip3
- gcc-core
- libffi-devel
- make
- python38-wheel
- libintl-devel
Once installed use Cygwin for all your command-line operations.
This is because one of the dependencies, uWSGI, does not provide Windows support directly.
Set required environment variables:
# Valid values are development, local, postgres_local, production, or staging
export DJANGO_APPLICATION_ENVIRONMENT='local'
# 64 character signing key used to authenticate network requests
export NETWORK_SIGNING_KEY='6f812a35643b55a77f71c3b722504fbc5918e83ec72965f7fd33865ed0be8f81'
# A string with random chars
export SECRET_KEY='some random string'
Install Redis:
brew install redis
Create a virtual environment with Python 3.6 or higher.
Install required packages:
pip3 install -r requirements/local.txt
To initialize the project:
python3 manage.py migrate
python3 manage.py initialize_test_primary_validator -ip [IP ADDRESS]
Run Redis:
redis-server
Run Celery (run each as a separate process):
celery -A config.settings worker -l debug
celery -A config.settings worker -l debug --queue block_queue --pool solo
celery -A config.settings worker -l debug --queue confirmation_block_queue --pool solo
To monitor Celery tasks:
celery flower -A config.settings --address=127.0.0.1 --port=5555
To watch log files:
tail -f logs/warning.log -n 10To run all tests in parallel:
pytest -n autoWhen adding a package, add to requirements/base.in and then :
bash scripts/compile_requirements.shTo generate documentation:
cd docs
make htmlJoin the community to stay updated on the most recent developments, project roadmaps, and random discussions about completely unrelated topics.
All donations will go to thenewboston to help fund the team to continue to develop the community and create new content.
| Coin | Address |
|---|---|
![]() |
b6e21072b6ba2eae6f78bc3ade17f6a561fa4582d5494a5120617f2027d38797 |
![]() |
3GZYi3w3BXQfyb868K2phHjrS4i8LooaHh |
![]() |
0x0E38e2a838F0B20872E5Ff55c82c2EE7509e6d4A |
thenewboston is MIT licensed.


