Add support for Ethereum Testnet Hoodi

This commit is contained in:
Martin Boehm
2025-08-17 12:31:18 +02:00
committed by Martin
parent d4e9f0f862
commit 9939b92ef3
8 changed files with 264 additions and 3 deletions

View File

@@ -35,7 +35,7 @@ the rest of coins were implemented by the community.
Testnets for some coins are also supported, for example:
- Bitcoin Testnet, Bitcoin Cash Testnet, ZCash Testnet, Ethereum Testnets (Sepolia, Holesky)
- Bitcoin Testnet, Bitcoin Cash Testnet, ZCash Testnet, Ethereum Testnets (Sepolia, Hoodi)
List of all implemented coins is in [the registry of ports](/docs/ports.md).

View File

@@ -81,6 +81,8 @@ func init() {
BlockChainFactories["Ethereum Testnet Sepolia Archive"] = eth.NewEthereumRPC
BlockChainFactories["Ethereum Testnet Holesky"] = eth.NewEthereumRPC
BlockChainFactories["Ethereum Testnet Holesky Archive"] = eth.NewEthereumRPC
BlockChainFactories["Ethereum Testnet Hoodi"] = eth.NewEthereumRPC
BlockChainFactories["Ethereum Testnet Hoodi Archive"] = eth.NewEthereumRPC
BlockChainFactories["Bcash"] = bch.NewBCashRPC
BlockChainFactories["Bcash Testnet"] = bch.NewBCashRPC
BlockChainFactories["Bgold"] = btg.NewBGoldRPC

View File

@@ -34,6 +34,8 @@ const (
TestNetSepolia Network = 11155111
// TestNetHolesky is Holesky test network
TestNetHolesky Network = 17000
// TestNetHoodi is Hoodi test network
TestNetHoodi Network = 560048
)
// Configuration represents json config file
@@ -162,6 +164,9 @@ func (b *EthereumRPC) Initialize() error {
case TestNetHolesky:
b.Testnet = true
b.Network = "holesky"
case TestNetHoodi:
b.Testnet = true
b.Network = "hoodi"
default:
return errors.Errorf("Unknown network id %v", id)
}

View File

@@ -0,0 +1,71 @@
{
"coin": {
"name": "Ethereum Testnet Hoodi",
"shortcut": "tHOD",
"label": "Ethereum Hoodi",
"alias": "ethereum_testnet_hoodi"
},
"ports": {
"backend_rpc": 18006,
"backend_message_queue": 0,
"backend_p2p": 48306,
"backend_http": 18106,
"backend_authrpc": 18506,
"blockbook_internal": 19006,
"blockbook_public": 19106
},
"ipc": {
"rpc_url_template": "ws://127.0.0.1:{{.Ports.BackendRPC}}",
"rpc_timeout": 25
},
"backend": {
"package_name": "backend-ethereum-testnet-hoodi",
"package_revision": "satoshilabs-1",
"system_user": "ethereum",
"version": "3.0.11",
"binary_url": "https://github.com/erigontech/erigon/releases/download/v3.0.11/erigon_v3.0.11_linux_amd64.tar.gz",
"verification_type": "sha256",
"verification_source": "f046e1e0ffbb460b156dea52023f0fa84efe536edb8d6eb42094b398d710615c",
"extract_command": "tar -C backend --strip-components=1 -xf",
"exclude_files": [],
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/erigon --chain hoodi --snap.keepblocks --db.size.limit 15TB --db.pagesize 16KB --prune.mode full --externalcl --nat none --datadir {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/erigon --port {{.Ports.BackendP2P}} --ws --ws.port {{.Ports.BackendRPC}} --http --http.port {{.Ports.BackendRPC}} --http.addr 127.0.0.1 --http.corsdomain \"*\" --http.vhosts \"*\" --http.api \"eth,net,web3,debug,txpool\" --authrpc.port {{.Ports.BackendAuthRpc}} --private.api.addr \"\" --torrent.port {{.Ports.BackendHttp}} --log.dir.path {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --log.dir.prefix {{.Coin.Alias}}'",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
"postinst_script_template": "",
"service_type": "simple",
"service_additional_params_template": "",
"protect_memory": true,
"mainnet": false,
"server_config_file": "",
"client_config_file": "",
"platforms": {
"arm64": {
"binary_url": "https://github.com/erigontech/erigon/releases/download/v3.0.11/erigon_v3.0.11_linux_arm64.tar.gz",
"verification_source": "c8c3c660187a2848bb8af0a1a65dd4548d8fd9bb46d1e6d2f5eb60854436e6c9"
}
}
},
"blockbook": {
"package_name": "blockbook-ethereum-testnet-hoodi",
"system_user": "blockbook-ethereum",
"internal_binding_template": ":{{.Ports.BlockbookInternal}}",
"public_binding_template": ":{{.Ports.BlockbookPublic}}",
"explorer_url": "",
"additional_params": "",
"block_chain": {
"parse": true,
"mempool_workers": 8,
"mempool_sub_workers": 2,
"block_addresses_to_keep": 3000,
"additional_params": {
"consensusNodeVersion": "http://localhost:17506/eth/v1/node/version",
"eip1559Fees": true,
"mempoolTxTimeoutHours": 12,
"queryBackendOnMempoolResync": false
}
}
},
"meta": {
"package_maintainer": "IT",
"package_maintainer_email": "it@satoshilabs.com"
}
}

View File

@@ -0,0 +1,77 @@
{
"coin": {
"name": "Ethereum Testnet Hoodi Archive",
"shortcut": "tHOD",
"label": "Ethereum Hoodi",
"alias": "ethereum_testnet_hoodi_archive"
},
"ports": {
"backend_rpc": 18026,
"backend_message_queue": 0,
"backend_p2p": 48326,
"backend_http": 18126,
"backend_torrent": 18126,
"backend_authrpc": 18526,
"blockbook_internal": 19026,
"blockbook_public": 19126
},
"ipc": {
"rpc_url_template": "ws://127.0.0.1:{{.Ports.BackendRPC}}",
"rpc_timeout": 25
},
"backend": {
"package_name": "backend-ethereum-testnet-hoodi-archive",
"package_revision": "satoshilabs-1",
"system_user": "ethereum",
"version": "3.0.11",
"binary_url": "https://github.com/erigontech/erigon/releases/download/v3.0.11/erigon_v3.0.11_linux_amd64.tar.gz",
"verification_type": "sha256",
"verification_source": "f046e1e0ffbb460b156dea52023f0fa84efe536edb8d6eb42094b398d710615c",
"extract_command": "tar -C backend --strip-components=1 -xf",
"exclude_files": [],
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/erigon --chain hoodi --snap.keepblocks --db.size.limit 15TB --db.pagesize 16KB --prune.mode archive --externalcl --nat none --datadir {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/erigon --port {{.Ports.BackendP2P}} --ws --ws.port {{.Ports.BackendRPC}} --http --http.port {{.Ports.BackendRPC}} --http.addr 127.0.0.1 --http.corsdomain \"*\" --http.vhosts \"*\" --http.api \"eth,net,web3,debug,txpool\" --authrpc.port {{.Ports.BackendAuthRpc}} --private.api.addr \"\" --torrent.port {{.Ports.BackendHttp}} --log.dir.path {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --log.dir.prefix {{.Coin.Alias}}'",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
"postinst_script_template": "",
"service_type": "simple",
"service_additional_params_template": "",
"protect_memory": true,
"mainnet": false,
"server_config_file": "",
"client_config_file": "",
"platforms": {
"arm64": {
"binary_url": "https://github.com/erigontech/erigon/releases/download/v3.0.11/erigon_v3.0.11_linux_arm64.tar.gz",
"verification_source": "c8c3c660187a2848bb8af0a1a65dd4548d8fd9bb46d1e6d2f5eb60854436e6c9"
}
}
},
"blockbook": {
"package_name": "blockbook-ethereum-testnet-hoodi-archive",
"system_user": "blockbook-ethereum",
"internal_binding_template": ":{{.Ports.BlockbookInternal}}",
"public_binding_template": ":{{.Ports.BlockbookPublic}}",
"explorer_url": "",
"additional_params": "-workers=16",
"block_chain": {
"parse": true,
"mempool_workers": 8,
"mempool_sub_workers": 2,
"block_addresses_to_keep": 3000,
"additional_params": {
"consensusNodeVersion": "http://localhost:17526/eth/v1/node/version",
"address_aliases": true,
"eip1559Fees": true,
"mempoolTxTimeoutHours": 12,
"processInternalTransactions": true,
"queryBackendOnMempoolResync": false,
"fiat_rates-disabled": "coingecko",
"fiat_rates_params": "{\"coin\": \"ethereum\",\"platformIdentifier\": \"ethereum\",\"platformVsCurrency\": \"eth\",\"periodSeconds\": 900}",
"fourByteSignatures": "https://www.4byte.directory/api/v1/signatures/"
}
}
},
"meta": {
"package_maintainer": "IT",
"package_maintainer_email": "it@satoshilabs.com"
}
}

View File

@@ -0,0 +1,52 @@
{
"coin": {
"name": "Ethereum Testnet Hoodi Archive",
"shortcut": "tHOD",
"label": "Ethereum Hoodi",
"alias": "ethereum_testnet_hoodi_archive_consensus",
"execution_alias": "ethereum_testnet_hoodi_archive"
},
"ports": {
"backend_rpc": 18026,
"backend_message_queue": 0,
"backend_p2p": 48326,
"backend_http": 18126,
"backend_authrpc": 18526,
"blockbook_internal": 19026,
"blockbook_public": 19126
},
"ipc": {
"rpc_url_template": "ws://127.0.0.1:{{.Ports.BackendRPC}}",
"rpc_timeout": 25
},
"backend": {
"package_name": "backend-ethereum-testnet-hoodi-archive-consensus",
"package_revision": "satoshilabs-1",
"system_user": "ethereum",
"version": "6.0.4",
"binary_url": "https://github.com/OffchainLabs/prysm/releases/download/v6.0.4/beacon-chain-v6.0.4-linux-amd64",
"verification_type": "sha256",
"verification_source": "5be75a5b5bb8654420eaba215f1138236395fe7fc6182329079c28dc5217258e",
"extract_command": "mv ${ARCHIVE} backend/beacon-chain && chmod +x backend/beacon-chain && echo",
"exclude_files": [],
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/beacon-chain --hoodi --accept-terms-of-use --execution-endpoint=http://localhost:{{.Ports.BackendAuthRpc}} --grpc-gateway-port=17526 --rpc-port=17527 --monitoring-port=17528 --p2p-tcp-port=13626 --p2p-udp-port=12626 --datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --jwt-secret={{.Env.BackendDataPath}}/ethereum_testnet_hoodi_archive/backend/erigon/jwt.hex --genesis-state={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/genesis.ssz 2>>{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
"postinst_script_template": "wget https://github.com/eth-clients/hoodi/raw/main/metadata/genesis.ssz -O {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/genesis.ssz",
"service_type": "simple",
"service_additional_params_template": "",
"protect_memory": true,
"mainnet": false,
"server_config_file": "",
"client_config_file": "",
"platforms": {
"arm64": {
"binary_url": "https://github.com/OffchainLabs/prysm/releases/download/v6.0.4/beacon-chain-v6.0.4-linux-arm64",
"verification_source": "24b0fd2efe77f77f7c690e73d408ea42e4de355472d386f6d8da19c216afad44"
}
}
},
"meta": {
"package_maintainer": "IT",
"package_maintainer_email": "it@satoshilabs.com"
}
}

View File

@@ -0,0 +1,52 @@
{
"coin": {
"name": "Ethereum Testnet Hoodi",
"shortcut": "tHOD",
"label": "Ethereum Hoodi",
"alias": "ethereum_testnet_hoodi_consensus",
"execution_alias": "ethereum_testnet_hoodi"
},
"ports": {
"backend_rpc": 18006,
"backend_message_queue": 0,
"backend_p2p": 48306,
"backend_http": 18106,
"backend_authrpc": 18506,
"blockbook_internal": 19006,
"blockbook_public": 19106
},
"ipc": {
"rpc_url_template": "ws://127.0.0.1:{{.Ports.BackendRPC}}",
"rpc_timeout": 25
},
"backend": {
"package_name": "backend-ethereum-testnet-hoodi-consensus",
"package_revision": "satoshilabs-1",
"system_user": "ethereum",
"version": "6.0.4",
"binary_url": "https://github.com/OffchainLabs/prysm/releases/download/v6.0.4/beacon-chain-v6.0.4-linux-amd64",
"verification_type": "sha256",
"verification_source": "5be75a5b5bb8654420eaba215f1138236395fe7fc6182329079c28dc5217258e",
"extract_command": "mv ${ARCHIVE} backend/beacon-chain && chmod +x backend/beacon-chain && echo",
"exclude_files": [],
"exec_command_template": "/bin/sh -c '{{.Env.BackendInstallPath}}/{{.Coin.Alias}}/beacon-chain --hoodi --accept-terms-of-use --execution-endpoint=http://localhost:{{.Ports.BackendAuthRpc}} --grpc-gateway-port=17506 --rpc-port=17507 --monitoring-port=17508 --p2p-tcp-port=13506 --p2p-udp-port=12506 --datadir={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend --jwt-secret={{.Env.BackendDataPath}}/ethereum_testnet_hoodi/backend/erigon/jwt.hex --genesis-state={{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/genesis.ssz 2>>{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log'",
"logrotate_files_template": "{{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/{{.Coin.Alias}}.log",
"postinst_script_template": "wget https://github.com/eth-clients/holesky/raw/main/metadata/genesis.ssz -O {{.Env.BackendDataPath}}/{{.Coin.Alias}}/backend/genesis.ssz",
"service_type": "simple",
"service_additional_params_template": "",
"protect_memory": true,
"mainnet": false,
"server_config_file": "",
"client_config_file": "",
"platforms": {
"arm64": {
"binary_url": "https://github.com/OffchainLabs/prysm/releases/download/v6.0.4/beacon-chain-v6.0.4-linux-arm64",
"verification_source": "24b0fd2efe77f77f7c690e73d408ea42e4de355472d386f6d8da19c216afad44"
}
}
},
"meta": {
"package_maintainer": "IT",
"package_maintainer_email": "it@satoshilabs.com"
}
}

View File

@@ -61,7 +61,6 @@
| Arbitrum Nova Archive | 9308 | 9208 | 8308 | 38408 p2p |
| Base | 9309 | 9209 | 8309 | 38409 p2p, 8209 http, 8409 authrpc |
| Base Archive | 9311 | 9211 | 8211 | 38411 p2p, 8311 http, 8411 authrpc |
| Ethereum Testnet Holesky | 19116 | 19016 | 18016 | 18116 http, 18516 authrpc, 48316 p2p |
| Bitcoin Signet | 19120 | 19020 | 18020 | 48320 |
| Bitcoin Regtest | 19121 | 19021 | 18021 | 48321 |
| Bitcoin Testnet4 | 19129 | 19029 | 18029 | 48329 |
@@ -71,7 +70,6 @@
| Dash Testnet | 19133 | 19033 | 18033 | 48333 |
| Litecoin Testnet | 19134 | 19034 | 18034 | 48334 |
| Bitcoin Gold Testnet | 19135 | 19035 | 18035 | 48335 |
| Ethereum Testnet Holesky Archive | 19136 | 19036 | 18036 | 18136 http, 18136 torrent, 18536 authrpc, 48336 p2p |
| Dogecoin Testnet | 19138 | 19038 | 18038 | 48338 |
| Vertcoin Testnet | 19140 | 19040 | 18040 | 48340 |
| Monacoin Testnet | 19141 | 19041 | 18041 | 48341 |
@@ -83,6 +81,10 @@
| Koto Testnet | 19151 | 19051 | 18051 | 48351 |
| Decred Testnet | 19161 | 19061 | 18061 | 48361 |
| Flo Testnet | 19166 | 19066 | 18066 | 48366 |
| Ethereum Testnet Holesky | 19116 | 19016 | 18016 | 18116 http, 18516 authrpc, 48316 p2p |
| Ethereum Testnet Holesky Archive | 19136 | 19036 | 18036 | 18136 http, 18136 torrent, 18536 authrpc, 48336 p2p |
| Ethereum Testnet Hoodi | 19106 | 19006 | 18006 | 18106 http, 18506 authrpc, 48306 p2p |
| Ethereum Testnet Hoodi Archive | 19126 | 19026 | 18026 | 18126 http, 18126 torrent, 18526 authrpc, 48326 p2p |
| Ethereum Testnet Sepolia | 19176 | 19076 | 18076 | 18176 http, 18576 authrpc, 48376 p2p |
| Ethereum Testnet Sepolia Archive | 19186 | 19086 | 18086 | 18186 http, 18186 torrent, 18586 authrpc, 48386 p2p |
| Qtum Testnet | 19188 | 19088 | 18088 | 48388 |