This project demonstrates how to bootstrap own cryptocurrency with Exonum blockchain.
Exonum blockchain keeps balances of users and handles secure transactions between them.
It implements most basic operations:
- Create a new user
- Add funds to the user's balance
- Transfer funds between users
Be sure you installed necessary packages:
Below you will find a step-by-step guide to starting the cryptocurrency service on 4 nodes on the local machine.
Build the project:
cd examples/cryptocurrency-advanced/backend
cargo installGenerate template:
mkdir example
exonum-cryptocurrency-advanced generate-template example/common.toml --validators-count 4Generate public and secrets keys for each node:
exonum-cryptocurrency-advanced generate-config example/common.toml example/pub_1.toml example/sec_1.toml --peer-address 127.0.0.1:6331
exonum-cryptocurrency-advanced generate-config example/common.toml example/pub_2.toml example/sec_2.toml --peer-address 127.0.0.1:6332
exonum-cryptocurrency-advanced generate-config example/common.toml example/pub_3.toml example/sec_3.toml --peer-address 127.0.0.1:6333
exonum-cryptocurrency-advanced generate-config example/common.toml example/pub_4.toml example/sec_4.toml --peer-address 127.0.0.1:6334Finalize configs:
exonum-cryptocurrency-advanced finalize --public-api-address 0.0.0.0:8200 --private-api-address 0.0.0.0:8091 example/sec_1.toml example/node_1_cfg.toml --public-configs example/pub_1.toml example/pub_2.toml example/pub_3.toml example/pub_4.toml
exonum-cryptocurrency-advanced finalize --public-api-address 0.0.0.0:8201 --private-api-address 0.0.0.0:8092 example/sec_2.toml example/node_2_cfg.toml --public-configs example/pub_1.toml example/pub_2.toml example/pub_3.toml example/pub_4.toml
exonum-cryptocurrency-advanced finalize --public-api-address 0.0.0.0:8202 --private-api-address 0.0.0.0:8093 example/sec_3.toml example/node_3_cfg.toml --public-configs example/pub_1.toml example/pub_2.toml example/pub_3.toml example/pub_4.toml
exonum-cryptocurrency-advanced finalize --public-api-address 0.0.0.0:8203 --private-api-address 0.0.0.0:8094 example/sec_4.toml example/node_4_cfg.toml --public-configs example/pub_1.toml example/pub_2.toml example/pub_3.toml example/pub_4.tomlRun nodes:
exonum-cryptocurrency-advanced run --node-config example/node_1_cfg.toml --db-path example/db1 --public-api-address 0.0.0.0:8200
exonum-cryptocurrency-advanced run --node-config example/node_2_cfg.toml --db-path example/db2 --public-api-address 0.0.0.0:8201
exonum-cryptocurrency-advanced run --node-config example/node_3_cfg.toml --db-path example/db3 --public-api-address 0.0.0.0:8202
exonum-cryptocurrency-advanced run --node-config example/node_4_cfg.toml --db-path example/db4 --public-api-address 0.0.0.0:8203Install frontend dependencies:
cd frontend
npm installBuild sources:
npm run buildRun the application:
npm start -- --port=8280 --api-root=http://127.0.0.1:8200--port is a port for Node.JS app.
--api-root is a root URL of public API address of one of nodes.
Ready! Find demo at http://127.0.0.1:8280.
- Read the frontend tutorial to get detailed information about the interaction of the client with Exonum blockchain.
Cryptocurrency demo is licensed under the Apache License (Version 2.0). See LICENSE for details.