Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

WIR216/code

Open more actions menu
 
 

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

Releases

No releases published

Packages

No packages published
Morty Proxy This is a proxified and sanitized view of the page, visit original site.