Skip to content

StarTowerChain/code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

SAVW Node Setup Guide

1. Environment Preparation

1.1 System Runtime Environment

  • 80GB available disk space required.

1.2 Open Server Ports

Open the following ports on the server:

  • 8545, 8546 (for HTTP/WebSocket RPC)
  • 30303, 30304 (for P2P network communication)

2. Install Tools and Dependencies

2.1 Install Git

# Install Git  
apt install git  

# Verify installation  
git --version  

Expected output (version may vary):

git version 1.8.3.1  

2.2 Install Golang

# Install Golang  
apt install golang  

# Verify installation (requires version 1.14 or higher)  
go version  

Expected output:

go version go1.15.14 linux/amd64  

3. Install SAVW

3.1 Download and Extract SAVW Code

# Download the SAVW package  
wget http://code.savwscan.com/geth-alltools-linux-amd64-1.9.25-e7872729.tar.gz  

# Extract the package  
tar -xzvf geth-alltools-linux-amd64-1.9.25-e7872729.tar.gz  

4. Create Node Directory, Set Global Access, and Upload Genesis File

4.1 Create Node Directory

Create a directory to store SAVW node data:

mkdir node  

4.2 Set Global Access

Copy the geth executable to the global binary directory:

cp ./geth /usr/local/bin  

4.3 Upload Genesis File

Upload the genesis file savw.json (generated by the first node) to the SAVW directory:

cd savw  
ls  # Verify the file exists: node/ savw.json  

5. Initialize the Node

Initialize the node using the uploaded genesis file:

geth --datadir node init savw.json  

Note: --datadir specifies the node data directory.

6. Start Nodes and Access the Console

6.1 Export the First Node’s Enode

In the first node’s console, run:

admin.nodeInfo.enode  

Example output:

"enode://25171137a57910084d605dd417d139e74cfd559722c7fb8e564365efcf2616c21ef3a9b7136f649c5571ea17ec08fb5952027248db0783bb8305ad7793f7f122@15.188.81.51:30303"  

6.2 Start Subsequent Nodes

Start a subsequent node and access its console:

geth --port 30303 --networkid 321123 --datadir node --maxpeers 5000 --http --http.port 8545 --http.addr 0.0.0.0 --http.corsdomain "" --http.api "eth,net,web3,personal" --ws --ws.addr 0.0.0.0 --ws.port 8546 --allow-insecure-unlock console  

6.3 Add the First Node’s Enode to Subsequent Nodes

In the subsequent node’s console, run:

admin.addPeer("enode://620eb3eba5d6c5e55def63ec73f384d62c19eb321e959fd2156594aa818ac8334e7d507e2c5e27a5de59757128f763f669426c87f8600605d3584905dba3afc4@116.24.67.1:30303")  

Note: If within a local network, replace the IP with the local network IP; otherwise, addPeer will fail.

6.4 Verify Peer Connection

Check peer information in the console:

admin.peers  

Example output (successful connection shows the added enode):

[{  
  caps: ["eth/65", "eth/66", "snap/1"],  
  enode: "enode://25171137a57910084d605dd417d139e74cfd559722c7fb8e564365efcf2616c21ef3a9b7136f649c5571ea17ec08fb5952027248db0783bb8305ad7793f7f122@15.188.81.51:30303",  
  id: "ccf430543622baa54e1add4182ca8528093b08d1326c07ff7433da3578461233",  
  name: "Geth/v1.10.5-unstable-b89016b4-20210728/linux-amd64/go1.15.14",  
  network: {  
    inbound: false,  
    localAddress: "******:53270",  
    remoteAddress: "******:30303",  
    static: false,  
    trusted: false  
  },  
  protocols: {  
    eth: {  
      difficulty: 1941,  
      head: "0x9bf4dd6ef1e790db4bbb8d0f97490f46b28a518e56ad2d3b6e72988996922057",  
      version: 66  
    },  
    snap: {  
      version: 1  
    }  
  }  
}]  

7. Generate and Set the Coinbase Account

7.1 Generate a New Account

In the console, run (replace 123456 with your password):

personal.newAccount("123456")  

Example output:

"0xe5289037d47c*********327a23906fef2af1b"  

7.2 Set the Coinbase Account

Set the generated account as the coinbase (mining reward destination):

miner.setSAVW("0xe5289037d47c2d*********a23906fef2af1b")  

Expected output:

true  

8. Authorize the Signer Node

8.1 Unlock the Account (Initial Node)

In the initial node’s console, unlock the coinbase account (use the password from Step 7.1):

personal.unlockAccount(eth.coinbase, "123456", 0)  

Expected output:

true  

8.2 Propose the New Signer

Authorize the new node as a signer:

clique.propose("0xe5289037d47c2d18******27a23906fef2af1b", true)  

Expected output:

true  

8.3 Verify Authorization

Check the list of authorized signers:

clique.getSigners()  

8.4 Stop Mining (Temporary)

On each node, stop mining temporarily:

miner.stop()  

Note: If more than one signer node is added, half of the signers must authorize the new node.

9. Start Mining on Subsequent Nodes

In the subsequent node’s console, start mining:

miner.start()  

A successful start will display mining-related logs.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published