Installation
1. Download Besu 23.7.3
BESC Hyperchain full nodes run Besu 23.7.3. Use this exact version for full compatibility.
bash
cd /usr/local
wget https://artifacts.hyperledger.org/releases/besu/23.7.3/besu-23.7.3.tar.gz
tar -xzf besu-23.7.3.tar.gz
rm besu-23.7.3.tar.gz
ls besu-23.7.3/bin/
# → besu besu.batVerify:
bash
/usr/local/besu-23.7.3/bin/besu --version
# → besu/v23.7.3/linux-x86_64/openjdk-java-212. Create Data Directory
bash
mkdir -p /var/lib/besu-node
chown -R root:root /var/lib/besu-node3. Get the Genesis File
The genesis file defines the chain from block 0. Download it from the BESC Hyperchain repository or use the following (save as /etc/besu/genesis.json):
json
{
"config": {
"chainId": 2372,
"berlinBlock": 0,
"londonBlock": 0,
"shanghaiBlock": 0,
"cancunBlock": 0,
"ibft2": {
"blockperiodseconds": 3,
"epochlength": 30000,
"requesttimeoutseconds": 20,
"blockreward": "2000000000000000"
}
},
"nonce": "0x0",
"timestamp": "0x68a52b7b",
"baseFeePerGas": "0x87576962FF000",
"gasLimit": "0x989680",
"difficulty": "0x1",
"mixHash": "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365",
"coinbase": "0x0000000000000000000000000000000000000000",
"alloc": {
"717d58c3e05ADe613fBC3ADc1da2e854Fe119547": {
"balance": "0xF0C4E4BCCBD1C4A00000"
}
},
"extraData": "0xf87ea00000000000000000000000000000000000000000000000000000000000000000f854948f32294c406f8c32a24d0b3c800a5f172ccfcebd94c493ac0fd4bb41552e8a83f675a16c318249c17c94d00b96c4586d9b2e6dee6defd69cbe7e988f5745945a5134c2bc99c3991d69839ee7628364fa813619808400000000c0"
}4. Create Systemd Service
bash
cat > /etc/systemd/system/besu-node.service << 'EOF'
[Unit]
Description=BESC Hyperchain Full Node (Besu 23.7.3)
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=root
Environment=JAVA_OPTS=-Xms4g -Xmx16g
Environment=LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2
ExecStart=/usr/local/besu-23.7.3/bin/besu \
--config-file=/etc/besu/node-config.toml \
--rpc-max-logs-range=20000
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable besu-node.service5. Start and Monitor
bash
systemctl start besu-node.service
journalctl -u besu-node.service -fYou should see log lines like:
INFO | PersistBlockTask | Imported #9,000,001 / 3 tx / ... in 0.012s. Peers: 4Once fully synced, the node imports a new block every 3 seconds.
See Configuration → for the full node-config.toml reference.
