浏览代码

doc/testnet/node: simplyfied outputs visualization

skoupidi 1 年之前
父节点
当前提交
3a694f2eda
共有 1 个文件被更改,包括 178 次插入77 次删除
  1. 178 77
      doc/src/testnet/node.md

+ 178 - 77
doc/src/testnet/node.md

@@ -6,6 +6,11 @@ understand all the steps required and how each component operates.
 Unless instructed otherwise, each daemon runs on its own shell, so don't
 Unless instructed otherwise, each daemon runs on its own shell, so don't
 stop a running one to start another.
 stop a running one to start another.
 
 
+Each command to execute will be inside a codeblock, on its first line,
+marked by the user `$` symbol, followed by the expected output. For
+longer command outputs, some lines will be emmited to keep the guide
+simple.
+
 We also strongly suggest to first execute next guide steps on a
 We also strongly suggest to first execute next guide steps on a
 [local environment](#local-deployment) to become familiar with
 [local environment](#local-deployment) to become familiar with
 each command, before broadcasting transactions to the actual network.
 each command, before broadcasting transactions to the actual network.
@@ -33,7 +38,7 @@ each marked `[network_config]`. The sections look like this:
 At the top of the `darkfid` and `drk` config file, we can modify the
 At the top of the `darkfid` and `drk` config file, we can modify the
 network being used by changing the following line:
 network being used by changing the following line:
 
 
-```
+```toml
 # Blockchain network to use
 # Blockchain network to use
 network = "testnet"
 network = "testnet"
 ```
 ```
@@ -50,17 +55,44 @@ the software system-wide. Instead, we'll be running all the commands
 from the git repository, so we're able to easily pull any necessary
 from the git repository, so we're able to easily pull any necessary
 updates.
 updates.
 
 
-Refer to the main [DarkFi](../index.html) page for instructions on how
-to install Rust and necessary deps.
+Refer to the main [DarkFi](../index.html#build) page for instructions
+on how to install Rust and necessary deps. Skip last step of the build
+process, as you don't need to compile all binaries of the project.
 
 
 Once you have the repository in place, and everything is installed, we
 Once you have the repository in place, and everything is installed, we
 can compile the `darkfid` node and the `drk` wallet CLI:
 can compile the `darkfid` node and the `drk` wallet CLI:
 
 
-```
+```shell
 $ make darkfid drk
 $ make darkfid drk
-```
 
 
-![make1](img/makedarkfid.png)
+...
+make -C bin/darkfid \
+        PREFIX="/home/anon/.cargo" \
+        CARGO="cargo" \
+        RUST_TARGET="x86_64-unknown-linux-gnu" \
+        RUSTFLAGS=""
+make[1]: Entering directory '/home/anon/darkfi/bin/darkfid'
+RUSTFLAGS="" cargo build --target=x86_64-unknown-linux-gnu --release --package darkfid
+...
+   Compiling darkfid v0.5.0 (/home/anon/darkfi/bin/darkfid)
+    Finished `release` profile [optimized] target(s) in 4m 19s
+cp -f ../../target/x86_64-unknown-linux-gnu/release/darkfid darkfid
+cp -f ../../target/x86_64-unknown-linux-gnu/release/darkfid ../../darkfid
+make[1]: Leaving directory '/home/anon/darkfi/bin/darkfid'
+make -C bin/drk \
+        PREFIX="/home/anon/.cargo" \
+        CARGO="cargo" \
+        RUST_TARGET="x86_64-unknown-linux-gnu" \
+        RUSTFLAGS=""
+make[1]: Entering directory '/home/anon/darkfi/bin/drk'
+RUSTFLAGS="" cargo build --target=x86_64-unknown-linux-gnu --release --package drk
+...
+   Compiling drk v0.5.0 (/home/anon/darkfi/bin/drk)
+    Finished `release` profile [optimized] target(s) in 2m 16s
+cp -f ../../target/x86_64-unknown-linux-gnu/release/drk drk
+cp -f ../../target/x86_64-unknown-linux-gnu/release/drk ../../drk
+make[1]: Leaving directory '/home/anon/darkfi/bin/drk'
+```
 
 
 This process will now compile the node and the wallet CLI tool.
 This process will now compile the node and the wallet CLI tool.
 When finished, we can begin using the network. Run `darkfid` and `drk`
 When finished, we can begin using the network. Run `darkfid` and `drk`
@@ -69,20 +101,18 @@ will be used to `darkfid` and `drk`.
 
 
 Please note that the exact paths may differ depending on your local setup.
 Please note that the exact paths may differ depending on your local setup.
 
 
-```
+```shell
 $ ./darkfid
 $ ./darkfid
+
 Config file created in "~/.config/darkfi/darkfid_config.toml". Please review it and try again.
 Config file created in "~/.config/darkfi/darkfid_config.toml". Please review it and try again.
 ```
 ```
 
 
-![step1](img/step1.png)
-
-```
+```shell
 $ ./drk wallet --address
 $ ./drk wallet --address
+
 Config file created in "~/.config/darkfi/drk_config.toml". Please review it and try again.
 Config file created in "~/.config/darkfi/drk_config.toml". Please review it and try again.
 ```
 ```
 
 
-![step2](img/step2.png)
-
 ## Running
 ## Running
 
 
 ### Using Tor
 ### Using Tor
@@ -109,42 +139,47 @@ your config file in a text editor (the default path is
 `~/.config/darkfi/drk_config.toml`). Look for the section marked
 `~/.config/darkfi/drk_config.toml`). Look for the section marked
 `[network_config."testnet"]` and change this line:
 `[network_config."testnet"]` and change this line:
 
 
-```
+```toml
 # Password for the wallet database
 # Password for the wallet database
 wallet_pass = "changeme"
 wallet_pass = "changeme"
 ```
 ```
 
 
-Once you've changed the default password for your testnet wallet, we can
-proceed with the wallet initialization. We simply have to initialize a
-wallet, and create a keypair.
+Once you've changed the default password for your testnet wallet, we
+can proceed with the wallet initialization. We simply have to
+initialize a wallet, and create a keypair. The wallet address shown in
+the outputs is examplatory and will different from the one you get.
 
 
-```
+```shell
 $ ./drk wallet --initialize
 $ ./drk wallet --initialize
-```
-
-![step3](img/step4.png)
 
 
-```
-$ ./drk wallet --keygen
+Initializing Money Merkle tree
+Successfully initialized Merkle tree for the Money contract
+Generating alias DRK for Token: 241vANigf1Cy3ytjM1KHXiVECxgxdK4yApddL8KcLssb
+Initializing DAO Merkle trees
+Successfully initialized Merkle trees for the DAO contract
 ```
 ```
 
 
-![step4](img/step5.png)
+```shell
+$ ./drk wallet --keygen
 
 
+Generating a new keypair
+New address:
+CbaqFqGTgn86Zh9AjUeMw3DJyVCshaPSPFtmj6Cyd5yU
 ```
 ```
+
+```shell
 $ ./drk wallet --default-address 1
 $ ./drk wallet --default-address 1
 ```
 ```
 
 
-![step5](img/step6.png)
-
 The second command will print out your new DarkFi address where you
 The second command will print out your new DarkFi address where you
 can receive payments. Take note of it. Alternatively, you can always
 can receive payments. Take note of it. Alternatively, you can always
 retrieve your default address using:
 retrieve your default address using:
 
 
-```
+```shell
 $ ./drk wallet --address
 $ ./drk wallet --address
-```
 
 
-![step6](img/step7.png)
+CbaqFqGTgn86Zh9AjUeMw3DJyVCshaPSPFtmj6Cyd5yU
+```
 
 
 ### Miner
 ### Miner
 
 
@@ -160,11 +195,24 @@ will be minted to.
 
 
 First, compile it:
 First, compile it:
 
 
-```
+```shell
 $ make minerd
 $ make minerd
-```
 
 
-![make1](img/makeminerd.png)
+...
+make -C bin/minerd \
+        PREFIX="/home/anon/.cargo" \
+        CARGO="cargo" \
+        RUST_TARGET="x86_64-unknown-linux-gnu" \
+        RUSTFLAGS=""
+make[1]: Entering directory '/home/anon/darkfi/bin/minerd'
+RUSTFLAGS="" cargo build --target=x86_64-unknown-linux-gnu --release --package minerd
+...
+  Compiling minerd v0.5.0 (/home/anon/darkfi/bin/minerd)
+    Finished `release` profile [optimized] target(s) in 1m 25s
+cp -f ../../target/x86_64-unknown-linux-gnu/release/minerd minerd
+cp -f ../../target/x86_64-unknown-linux-gnu/release/minerd ../../minerd
+make[1]: Leaving directory '/home/anon/darkfi/bin/minerd'
+```
 
 
 This process will now compile the mining daemon. When finished, run
 This process will now compile the mining daemon. When finished, run
 `minerd` once so that it spawns its config file on your system. This
 `minerd` once so that it spawns its config file on your system. This
@@ -172,21 +220,24 @@ config file is used to configure `minerd`. You can define how many
 threads will be used for mining. RandomX can use up to 2080 MiB per
 threads will be used for mining. RandomX can use up to 2080 MiB per
 thread so configure it to not consume all your system available memory.
 thread so configure it to not consume all your system available memory.
 
 
-```
+```shell
 $ ./minerd
 $ ./minerd
+
 Config file created in "~/.config/darkfi/minerd_config.toml". Please review it and try again.
 Config file created in "~/.config/darkfi/minerd_config.toml". Please review it and try again.
 ```
 ```
 
 
-![step7](img/step8.png)
-
 Once that's in place, you can run it again and `minerd` will start,
 Once that's in place, you can run it again and `minerd` will start,
 waiting for requests to mine blocks.
 waiting for requests to mine blocks.
 
 
-```
+```shell
 $ ./minerd
 $ ./minerd
-```
 
 
-![step8](img/step9.png)
+14:20:06 [INFO] Starting DarkFi Mining Daemon...
+14:20:06 [INFO] Initializing a new mining daemon...
+14:20:06 [INFO] Mining daemon initialized successfully!
+14:20:06 [INFO] Starting mining daemon...
+14:20:06 [INFO] Mining daemon started successfully!
+```
 
 
 You now have to expose `minerd` RPC to `darkfid`, and configure it
 You now have to expose `minerd` RPC to `darkfid`, and configure it
 to use your wallet address as the rewards recipient, when submitting
 to use your wallet address as the rewards recipient, when submitting
@@ -198,7 +249,7 @@ is `~/.config/darkfi/darkfid_config.toml`). Find the `recipient` and
 uncomment them by removing the `#` character at the start of line,
 uncomment them by removing the `#` character at the start of line,
 like this:
 like this:
 
 
-```
+```toml
 # Put your `minerd` endpoint here (default for testnet is in this example)
 # Put your `minerd` endpoint here (default for testnet is in this example)
 minerd_endpoint = "tcp://127.0.0.1:28467"
 minerd_endpoint = "tcp://127.0.0.1:28467"
 # Put the address from `drk wallet --address` here
 # Put the address from `drk wallet --address` here
@@ -211,11 +262,11 @@ is `~/.config/darkfi/minerd_config.toml`). Finally, replace the
 `YOUR_WALLET_ADDRESS_HERE` string with your `drk` wallet address that
 `YOUR_WALLET_ADDRESS_HERE` string with your `drk` wallet address that
 you can retrieve as follows:
 you can retrieve as follows:
 
 
-```
+```shell
 $ ./drk wallet --address
 $ ./drk wallet --address
-```
 
 
-![step6](img/step7.png)
+CbaqFqGTgn86Zh9AjUeMw3DJyVCshaPSPFtmj6Cyd5yU
+```
 
 
 Note: when modifying the `darkfid` config file to use with the
 Note: when modifying the `darkfid` config file to use with the
 testnet, be sure to change the values under the section marked
 testnet, be sure to change the values under the section marked
@@ -227,16 +278,27 @@ Now that `darkfid` configuration is in place, you can run it again and
 `darkfid` will start, create the necessary keys for validation of blocks
 `darkfid` will start, create the necessary keys for validation of blocks
 and transactions, and begin syncing the blockchain. 
 and transactions, and begin syncing the blockchain. 
 
 
-```
+```shell
 $ ./darkfid
 $ ./darkfid
-```
 
 
-![step10](img/step10.png)
+14:23:23 [INFO] Initializing DarkFi node...
+14:23:23 [INFO] Node is configured to run with fixed PoW difficulty: 1
+14:23:23 [INFO] Initializing a Darkfi daemon...
+14:23:23 [INFO] Initializing Validator
+14:23:23 [INFO] Initializing Blockchain
+14:23:23 [INFO] Deploying native WASM contracts
+14:23:23 [INFO] Deploying Money Contract with ContractID BZHKGQ26bzmBithTQYTJtjo2QdCqpkR9tjSBopT4yf4o
+14:23:29 [INFO] Successfully deployed Money Contract
+14:23:29 [INFO] Deploying DAO Contract with ContractID Fd8kfCuqU8BoFFp6GcXv5pC8XXRkBK7gUPQX5XDz7iXj
+...
+```
 
 
 As its syncing, you'll see periodic messages like this:
 As its syncing, you'll see periodic messages like this:
 
 
-```
+```shell
+...
 [INFO] Blocks received: 4020/4763
 [INFO] Blocks received: 4020/4763
+...
 ```
 ```
 
 
 This will give you an indication of the current progress. Keep it running,
 This will give you an indication of the current progress. Keep it running,
@@ -245,22 +307,34 @@ and you should see a `Blockchain synced!` message after some time.
 If you're running `minerd`, you should see a notification from the
 If you're running `minerd`, you should see a notification from the
 `minerd` terminal like this:
 `minerd` terminal like this:
 
 
-```
+```shell
+...
 [INFO] [RPC] Server accepted conn from tcp://127.0.0.1:44974/
 [INFO] [RPC] Server accepted conn from tcp://127.0.0.1:44974/
+...
 ```
 ```
 
 
-![step11](img/step11.png)
+This means that `darkfid` and `minerd` are connected over RPC and
+`minerd` can start mining. You will see log messages like these:
 
 
-This means that `darkfid` and `minerd` are connected over RPC and `minerd`
-can start mining.
-
-![step12](img/step12.png)
+```shell
+...
+14:23:56 [INFO] Mining block 4abc760a1f1c7198837e91c24d8e045e9fc9cb9fdf3a5fd45e184c25b03b0b51 for target:
+115792089237316195423570985008687907853269984665640564039457584007913129639935
+14:24:04 [INFO] Mined block 4abc760a1f1c7198837e91c24d8e045e9fc9cb9fdf3a5fd45e184c25b03b0b51 with nonce: 2
+14:24:06 [INFO] Received request to mine block 17e7428ecb3d911477f8452170d0822c831c6912027abb120e4b4c4cf01d6020 for target:
+115792089237316195423570985008687907853269984665640564039457584007913129639935
+14:24:06 [INFO] Checking if a pending request is being processed...
+...
+```
 
 
-When `darkfid` and `minerd` are correctly connected and you get an error
-like this:
+When `darkfid` and `minerd` are correctly connected and you get an
+error like this:
 
 
-```
-[ERROR] minerd::rpc: Failed mining block f6b4a0f0c8f90905da271ec0add2e856939ef3b0d6cd5b28964d9c2b6d0a0fa9 with error: Miner task stopped
+```shell
+...
+[ERROR] minerd::rpc: Failed mining block f6b4a0f0c8f90905da271ec0add2e856939ef3b0d6cd5b28964d9c2b6d0a0fa9 with error:
+Miner task stopped
+...
 ```
 ```
 
 
 That's expected behavior. It means your setup is correct and you are
 That's expected behavior. It means your setup is correct and you are
@@ -271,8 +345,10 @@ start mining the next height one.
 
 
 Otherwise, you'll see a notification like this:
 Otherwise, you'll see a notification like this:
 
 
-```
+```shell
+...
 [INFO] Mined block b6c7bd3545daa81d0e2e56ee780363beef6eb5b54579f54dca0cdd2a59989b76 with nonce: 266292
 [INFO] Mined block b6c7bd3545daa81d0e2e56ee780363beef6eb5b54579f54dca0cdd2a59989b76 with nonce: 266292
+...
 ```
 ```
 
 
 Which means the current height block has been mined succesfully by
 Which means the current height block has been mined succesfully by
@@ -288,17 +364,44 @@ and to find coins that are intended for you. In another terminal,
 you can run the following commands to first scan the blockchain,
 you can run the following commands to first scan the blockchain,
 and then to subscribe to new blocks:
 and then to subscribe to new blocks:
 
 
-```
+```shell
 $ ./drk scan
 $ ./drk scan
-```
-
-![step13](img/step13.png)
 
 
-```
+...
+Requested to scan from block number: 0
+Last confirmed block reported by darkfid: 1 - da4455f461df6833a68b659d1770f58e44b6bc4abdd934cb22d084c24333255f
+Requesting block 0...
+Block 0 received! Scanning block...
+=======================================
+Header {
+        Hash: b967812a860e8bf43deb03dd4f7cf69258f7719ddb7f2183d4e4fa3559b9f39d
+        Version: 1
+        Previous: 86bbac430a4b3a182f125b37a486e9c486bbfa34d84ef4a66b4a23e5f0c625b1
+        Height: 0
+        Timestamp: 2025-05-12T13:00:24
+        Nonce: 0
+        Transactions Root: 0x081361c364feba0d28a418e2e20c216ce442d5127036e3491ceaf1996fdb3c3b
+        State Root: afc1694dd6b290d8b92c33d3fc746707da9bed857eb9e90f11683d2e243b8047
+        Proof of Work data: Darkfi
+}
+=======================================
+[scan_block] Iterating over 1 transactions
+[scan_block] Processing transaction: 91525ff00a3755a8df93c626b59f6e36cf021d85ebccecdedc38f3f1890a15fc
+Requesting block 1...
+Block 1 received! Scanning block...
+...
+Requested to scan from block number: 2
+Last confirmed block reported by darkfid: 1 - da4455f461df6833a68b659d1770f58e44b6bc4abdd934cb22d084c24333255f
+Finished scanning blockchain
+```
+
+```shell
 $ ./drk subscribe
 $ ./drk subscribe
-```
 
 
-![step14](img/step14.png)
+Subscribing to receive notifications of incoming blocks
+Detached subscription to background
+All is good. Waiting for block notifications...
+```
 
 
 Now you can leave the subscriber running. In case you stop it, just
 Now you can leave the subscriber running. In case you stop it, just
 run `drk scan` again until the chain is fully scanned, and then you
 run `drk scan` again until the chain is fully scanned, and then you
@@ -308,44 +411,42 @@ should be able to subscribe again.
 
 
 For local (non-testnet) development we recommend running master, and
 For local (non-testnet) development we recommend running master, and
 use the existing `contrib/localnet/darkfid-single-node` folder, which
 use the existing `contrib/localnet/darkfid-single-node` folder, which
-provides the corresponding configurations to operate.
+provides the corresponding configurations to operate. Some outputs are
+emitted since they are identical to previous steps.
 
 
 First, compile `darkfid` node, `minerd` mining daemon and the `drk`
 First, compile `darkfid` node, `minerd` mining daemon and the `drk`
 wallet CLI:
 wallet CLI:
 
 
-```
+```shell
 $ make darkfid minerd drk
 $ make darkfid minerd drk
 ```
 ```
 
 
-![make3](img/make-minerd-darkfid-drk.png)
-
 Enter the localnet folder, and initialize a wallet:
 Enter the localnet folder, and initialize a wallet:
 
 
-```
+```shell
 $ cd contrib/localnet/darkfid-single-node/
 $ cd contrib/localnet/darkfid-single-node/
 $ ./init-wallet.sh
 $ ./init-wallet.sh
 ```
 ```
 
 
-![init](img/init-wallet.png)
-
 Then start `darkfid` and wait until its initialized:
 Then start `darkfid` and wait until its initialized:
 
 
-```
+```shell
 $ ./tmux_sessions.sh
 $ ./tmux_sessions.sh
 ```
 ```
 
 
-![localnet](img/localnet.png)
-
 After some blocks have been generated we
 After some blocks have been generated we
 will see some `DRK` in our test wallet.
 will see some `DRK` in our test wallet.
 On a different shell(or tmux pane in the session),
 On a different shell(or tmux pane in the session),
 navigate to `contrib/localnet/darkfid-single-node`
 navigate to `contrib/localnet/darkfid-single-node`
 folder again and check wallet balance
 folder again and check wallet balance
 
 
-```
+```shell
 $ ./wallet-balance.sh
 $ ./wallet-balance.sh
+
+ Token ID                                     | Aliases | Balance
+----------------------------------------------+---------+---------
+ 241vANigf1Cy3ytjM1KHXiVECxgxdK4yApddL8KcLssb | DRK     | 20
 ```
 ```
-![localnet](img/localnet-with-balance.png)
 
 
 Don't forget that when using this local node, all operations
 Don't forget that when using this local node, all operations
 should be executed inside the `contrib/localnet/darkfid-single-node`
 should be executed inside the `contrib/localnet/darkfid-single-node`
@@ -355,7 +456,7 @@ folder, and `./drk` command to be replaced by `../../../drk -c drk.toml`
 
 
 To run a node in full debug mode:
 To run a node in full debug mode:
 
 
-```
+```shell
 $ LOG_TARGETS='!sled,!rustls,!net' ./darkfid -vv | tee /tmp/darkfid.log
 $ LOG_TARGETS='!sled,!rustls,!net' ./darkfid -vv | tee /tmp/darkfid.log
 ```
 ```
 
 
@@ -364,7 +465,7 @@ we disable those.
 
 
 We can now view the log, and grep through it.
 We can now view the log, and grep through it.
 
 
-```
+```shell
 $ tail -n +0 -f /tmp/darkfid.log | grep -a --line-buffered -v DEBUG
 $ tail -n +0 -f /tmp/darkfid.log | grep -a --line-buffered -v DEBUG
 ```
 ```