Mainnet telemetry | Web wallet | Mobile wallet | Block Explorer | Block Explorer API | Discord chat | Telegram chat
Guidelines:
- Requirements
- How easily to start mining with Docker (Windows; Linux; Mac OS; any system)
- How to start mining on Linux or Mac OS
- How to to start mining on Windows
- How to use the web wallet
- Troubleshooting
- How to unlock funds mined
- How to set up a Validator
- API and Node interaction
- How to transfer Testnet 3DPt > Mainnet P3D 1:1
Requirements
The most common way for a beginner to run a miner and validator is to leverage a cloud server running Linux. You may choose whatever VPS provider that your prefer, and whatever operating system you are comfortable with. The transactions weights in PoScan were benchmarked on standard hardware. It is recommended that miners and validators run at least the standard hardware in order to ensure they are able to process all blocks in time. The following are not minimum requirements but if you decide to run with less than this beware that you might have performance issue.
Standard Hardware
- CPU - Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz
- Storage - A NVMe solid state drive. Should be reasonably sized to deal with blockchain growth. Starting around 80GB - 160GB will be okay for the first six months of Realis, but will need to be re-evaluated every six months.
- Memory - 64GB.
The specs posted above are by no means the minimum specs that you could use when running a validator, however you should be aware that if you are using less you may need to toggle some extra optimizations in order to be equal to other validators that are running the standard.
How to start mining with Docker (Windows; Linux; Mac OS; any system)
This way you can run both Node and Miner in one command. Windows, Linux, Mac OS are supported.
- First, install Docker and Docker Compose.
- Open Terminal and clone 3DPass Node. Use this command:
git clone https://github.com/3Dpass/3DP
- Create your mining address via Web wallet. Use these guidelines if you need help. Keep your seed phrase in a safe place. There is no way to recover if it's lost.
- Run both Node and Miner with the following command:
cp docker-compose.override.yml.example docker-compose.override.yml // TODO: put your `MEMO_SEED` and `ADDRESS` in `docker-compose.override.yml` docker compose build docker compose up
- Put your `MEMO_SEED` phrase and miner's `ADDRESS` into
`~/3DP/docker-compose.override.yml`
like this:version: "3.9" services: node: environment: - MEMO_SEED=[PLACE MEMO SEED HERE] - ADDRESS=[PLACE MINER ADDRESS HERE] - THREADS=2 - INTERVAL=100
- THREADS=2
is the amount of threads you are about to use
- INTERVAL=100
is the amount of time in miliseconds between the last and the next one objects being sent towards the Node. Dependidng on how much threads are you mining with, reduce the interval until you reach desired proc load. - Run the Node again and make sure you can see it in the list.
In order to assign a custom name to your Node you need to modify node.sh
file located ~/3DP/docker/node.sh
.
All you have to do is to add the flag --name YourNodeName \
like this:
./p3d import-mining-key "$MEMO_SEED" --base-path /var/chain --chain mainnetSpecRaw.json ./p3d --unsafe-ws-external --unsafe-rpc-external --rpc-cors=all \ --chain mainnetSpecRaw.json --validator \ --base-path /var/chain \ --name YourNodeName \ --author "$ADDRESS"
In order to remove your blockchain DB and keystore use this command:
cd 3DP docker compose rm -f
How to start mining on Linux or MAC OS
- Open your Terminal and build the Node with the folowing:
cd ~
git clone https://github.com/3Dpass/3DP.git
cd 3DP
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain nightly
source $HOME/.cargo/env
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
sudo apt-get install -y libclang-dev libssl-dev clang
cargo build --release
- Option (for Linux only): You can download the latest release instead of building yourself:
wget https://github.com/3Dpass/3DP/releases/download/v0.0.9/poscan-consensus-x86_64-unknown-linux-gnu.tar.gz
tar xzf poscan-consensus-x86_64-unknown-linux-gnu.tar.gz
- Generate your mining key:
./target/release/poscan-consensus generate-mining-key --base-path ~/3dp-chain/ --chain mainnetSpecRaw.json
The output would be like this:
Public key: 0xccc201f5b3e7036c5ea534096d75befbda68a9b285025csd7105bc4726f02f7e
Secret seed: fog olympic thrive recall allow page hood damage october curtain degrwe bubble
Address: d1GtBxnPwRZVez7VsQ9H7MskPn34H59RddrR9yXqhgDYsqC3t
-
Register your mining key in the keystore:
./target/release/poscan-consensus import-mining-key 'your secret seed phrase' --base-path ~/3dp-chain/ --chain mainnetSpecRaw.json
-
Generate the key for GRANDPA:
./target/release/poscan-consensus key inspect --scheme Ed25519 "your secret seed phrase"
The seed phrase must be the same as for your mining key.
The output would be like this:
Secret phrase `fog olympic thrive recall allow page hood damage october curtain degrwe bubble` is account:
Network ID/Version: 71
Secret seed: 0x4934fa3a959af00a0caccf2be77d82f4cbf2154c3c7bebc021f2c1573f44fbb3
Public key (hex): 0x23dad301fa6165b70bf538ca3be304ad418232c76814b38223c57d69bf2b28d1
Account ID: 0x23dad301fa6165b70bf538ca3be304ad418232c76814b38223c57d69bf2b28d1
SS58 Address: d1HqrBYq9qsTbBb4tQtnt9sLgh9UsS7XJbgQgr5Cb4CxH2xAd
-
Insert Grandpa key into the keystore:
./target/release/poscan-consensus key insert --base-path ~/3dp-chain/ --chain mainnetSpecRaw.json --scheme Ed25519 --suri 0x4934fa3a959af00a0caccf2be77d82f4cbf2154c3c7bebc021f2c1573f44fbb3 --key-type gran
--suri
is your Secret seed for Grandpa (not a Secret phrase, but this one 0x4934fa3a959af00a0caccf2be77d82f4cbf2154c3c7bebc021f2c1573f44fbb3
in the example above)
-
Check if there are 2 keys in the keystore:
ls ~/3dp-chain/chains/3dpass/keystore
You can also check the keys manualy ~/3dp-chain/chains/3dpass/keystore
-
Restart the Node with the following:
./target/release/poscan-consensus --base-path ~/3dp-chain/ --chain mainnetSpecRaw.json --name MyNodeName --validator --telemetry-url "wss://submit.telemetry.3dpass.org/submit 0" --author 0xccc201f5b3e7036c5ea534096d75befbda68a9b285025csd7105bc4726f02f7e --threads 2 --no-mdns
--author
is your Public key from mining account (the one you have generated as mining key, in the example above it is 0xccc201f5b3e7036c5ea534096d75befbda68a9b285025csd7105bc4726f02f7e
)
--threads
is the number of threads you're about to use for mining ("--threads 2" means, you are going to leverage 2 threads)
- Install Nodejs v16 and Yarn
- Install miner:
Yarn
- Run miner:
Yarn miner --interval 100
--interval
is the amount of time in miliseconds between the last and the next one objects being sent towards the Node.
Dependidng on how much threads are you mining with, reduce the interval until you reach desired proc load.
- Make sure you can see your Node in the list
cd ~ git clone https://github.com/3Dpass/3DP.git cd 3DP curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain nightly source $HOME/.cargo/env rustup update nightly rustup target add wasm32-unknown-unknown --toolchain nightly sudo apt-get install -y libclang-dev libssl-dev clang cargo build --release
wget https://github.com/3Dpass/3DP/releases/download/v0.0.9/poscan-consensus-x86_64-unknown-linux-gnu.tar.gz tar xzf poscan-consensus-x86_64-unknown-linux-gnu.tar.gz
./target/release/poscan-consensus generate-mining-key --base-path ~/3dp-chain/ --chain mainnetSpecRaw.json
The output would be like this:
Public key: 0xccc201f5b3e7036c5ea534096d75befbda68a9b285025csd7105bc4726f02f7e Secret seed: fog olympic thrive recall allow page hood damage october curtain degrwe bubble Address: d1GtBxnPwRZVez7VsQ9H7MskPn34H59RddrR9yXqhgDYsqC3t
./target/release/poscan-consensus import-mining-key 'your secret seed phrase' --base-path ~/3dp-chain/ --chain mainnetSpecRaw.json
./target/release/poscan-consensus key inspect --scheme Ed25519 "your secret seed phrase"The seed phrase must be the same as for your mining key.
The output would be like this:
Secret phrase `fog olympic thrive recall allow page hood damage october curtain degrwe bubble` is account: Network ID/Version: 71 Secret seed: 0x4934fa3a959af00a0caccf2be77d82f4cbf2154c3c7bebc021f2c1573f44fbb3 Public key (hex): 0x23dad301fa6165b70bf538ca3be304ad418232c76814b38223c57d69bf2b28d1 Account ID: 0x23dad301fa6165b70bf538ca3be304ad418232c76814b38223c57d69bf2b28d1 SS58 Address: d1HqrBYq9qsTbBb4tQtnt9sLgh9UsS7XJbgQgr5Cb4CxH2xAd
./target/release/poscan-consensus key insert --base-path ~/3dp-chain/ --chain mainnetSpecRaw.json --scheme Ed25519 --suri 0x4934fa3a959af00a0caccf2be77d82f4cbf2154c3c7bebc021f2c1573f44fbb3 --key-type gran
--suri
is your Secret seed for Grandpa (not a Secret phrase, but this one 0x4934fa3a959af00a0caccf2be77d82f4cbf2154c3c7bebc021f2c1573f44fbb3
in the example above)
ls ~/3dp-chain/chains/3dpass/keystoreYou can also check the keys manualy
~/3dp-chain/chains/3dpass/keystore
./target/release/poscan-consensus --base-path ~/3dp-chain/ --chain mainnetSpecRaw.json --name MyNodeName --validator --telemetry-url "wss://submit.telemetry.3dpass.org/submit 0" --author 0xccc201f5b3e7036c5ea534096d75befbda68a9b285025csd7105bc4726f02f7e --threads 2 --no-mdns
--author
is your Public key from mining account (the one you have generated as mining key, in the example above it is 0xccc201f5b3e7036c5ea534096d75befbda68a9b285025csd7105bc4726f02f7e
) --threads
is the number of threads you're about to use for mining ("--threads 2" means, you are going to leverage 2 threads)
Yarn
Yarn miner --interval 100
--interval
is the amount of time in miliseconds between the last and the next one objects being sent towards the Node.
Dependidng on how much threads are you mining with, reduce the interval until you reach desired proc load.
In order ot remove your blockchain DB use this command:
rm -rf ~/3dp-chain/chains/3dpass/db
How to start mining on Windows
- Download and install Rust
- Install Git if you havent installed it yet
- Install Node.js. Make sure you have picked up "Chocolatey installation", which is required for the node to work correctly
- Open powershell as administrator and go to the Desktop (we use this as an example). You can choose any location you like:
cd C:\Users\YourUserNameHere\Desktop\
- Install llvm with choco
choco install llvm
- Configure Rust with the following:
rustup install nightly-2022-06-17 rustup default nightly-2022-06-17 rustup toolchain install nightly-2022-06-17 rustup target add wasm32-unknown-unknown --toolchain nightly-2022-06-17-x86_64-pc-windows-msvc
-
Clone the node from the repo:
git clone https://github.com/3Dpass/3DP.git
- Build the node with the command:
cd 3DP cargo build --release
- Set up your keys for mining and Grandpa finalization and run the Node as it's shown above
- Install Yarn:
npm install --global yarn
- Configure miner:
yarn
-
Run miner:
yarn miner --interval 100
--interval
is the amount of time in miliseconds between the last and the next one objects being sent towards the Node. Dependidng on how much threads are you mining with, reduce the interval until you reach desired proc load.
How to use 3DPass web wallet
3DPass browser wallet is a Java Script page interacting with the blockchain network directly from your browser. Once being downloaded it might be connected either to the remote API endpoint available or to the local node running on your computer. By means of changing endpoints you can easily switch among different networks. Go to Settings to switch the endpoint:

API endpoints:
- wss://rpc.3dpass.org - mainnet
- wss://rpc2.3dpass.org - mainnet
- ws://127.0.0.1:9944 - local Node

How to create new address:
- Open 3DPass wallet page in your web browser.
- Make sure that you are connected to the correct endpoint: wss://rpc.3dpass.org or wss://rpc2.3dpass.org as it's shown above. Use "+" to generate new address. Keep your seed phrase in a safe place. There is no any possible ways to recover if it's lost. You can also import your address from the seed phrase.

Remove your address after it's being used:
We recommend that you not to store your addresses in browser constantly. Store your seed phrase in a safe place. You can import the address again whenever you need.
Troubleshooting
Node has no peers connected

That 99% might be caused by your Iternet connection or Internet settings.
- Check your Internet connection
- Make sure incoming connections are allowed, external port 30333 is open. Check your router, firewall, ddos protection, etc. For some countries you might need to use VPN.
- Ckeck if port 30334 is open on your computer/server
- Check your Internet speed. It should be at least 1 Mb/s for download
Node got stuck at the certain heght or it won't start syncing
It looks like you have some peers connected, however the Node got stuck indicating sync velocity 0 blocks per second and not receiving any blocks.

Solution:
- Make sure incoming connections are allowed and external port 30333 is open for your node.
- If you are behind the NAT or router, it's recomended that you set up a static internal IP and forward external port 30333 to your machine
- Sometimes, it might get tricky to establish the first p2p connection between nodes behind NAT. Try leveraging some different Internet provider or direct connection from data center, etc. That might really help. If you have your computer connected via router, then turn it off for 10-15 min and then try again.
Node is always falliing behind the other nodes and wouldn't catch up with the chain
That kind of issue might be caused by either you have some troubles with the Internet connection or your hardware doesn't satisfy or lower than the standatd conditions reqired.
- It's recommended that you upgrade the hardware and the Internet connection speed.
- You can also download the actual blockchain db and start syncing from that point. Ask the db on Discord chat and replace your folder
~/3dp-chain/chains/3dpass/db
with the new one.
Error: Service(Other("Unable to mine: fetch pair from author failed"))
- Set up your keys for mining and for Grandpa as it's described in the guidelines. If you are running the Node manually, make sure if there are two keys in the keystore:
~/3dp-chain/chains/3dp/keystore
"Expected prunning mode: constrained"
- Remove your blockchain db as it's described above and start the node again.
How to unlock funds mined
Funds mined are getting unlocked partially by 10% each 10 days. In order to unlock funds available sign unlock transaction:
- Open the web wallet
- Choose "Unlock funds mined"
How to transfer Testnet 3DPt > Mainnet P3D 1:1
If you are a holder of some 3DPts mined on the Testnet before the block #106390, you can easily turn all of those 3DPts into the Mainnet P3Ds. All you have to do is to import your testnet account into the mainnet wallet.
- Open the web wallet and make sure it's connected to the mainnet RPC endpoint wss://rpc2.3dpass.org
- Pick up "Import from seed phrase" and use the seed phrase from your Testnet address