Skip to content

Commit

Permalink
#1 Fuse Chain Support
Browse files Browse the repository at this point in the history
Add updates from [fuseio/nethermind](https://github.com/fuseio/nethermind):
1. **Bootnodes Update for Fuse**:
   - **Commit:** `8551c16eab2bada45689eeaa399a5b95fd52e88d`
2. **Refinement of Bootnodes Addresses**:
   - **Commit:** `f81c459cf5d88026dce281b09d9cef6f80164a43`
3. **Inclusion of New Spark Bootnodes**:
   - **Commit:** `607f3e575c532dd3d31ef7b3efec8404a7581231`
4. **Fast Sync Update**:
   - **Commit:** `7b657092c31e2f1827ee36a4b64220e55cd80277`
5. **Adding Support for Fuse**:
   - **Commit:** `96b555a876df1773135638c937fe9cda99986832`
  • Loading branch information
gr8h authored Dec 7, 2023
1 parent aa612f7 commit 3405f09
Show file tree
Hide file tree
Showing 12 changed files with 494 additions and 0 deletions.
1 change: 1 addition & 0 deletions VERSION.FUSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
4.0.2
74 changes: 74 additions & 0 deletions src/Nethermind/Chains/fuse.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
{
"name": "FuseNetwork",
"engine": {
"authorityRound": {
"params": {
"stepDuration": "5",
"blockReward": "0x0",
"blockRewardContractAddress": "0x63D4efeD2e3dA070247bea3073BCaB896dFF6C9B",
"blockRewardContractTransition": 100,
"validators": {
"multi": {
"0": {
"list": ["0xd9176e84898a0054680aec3f7c056b200c3d96c3"]
},
"100": {
"safeContract": "0x3014ca10b91cb3D0AD85fEf7A3Cb95BCAc9c0f79"
}
}
}
}
}
},
"params": {
"gasLimitBoundDivisor": "0x400",
"maximumExtraDataSize": "0x20",
"minGasLimit": "0x1388",
"networkID" : "0x07a",
"eip155Transition": 0,
"validateChainIdTransition": 0,
"eip140Transition": 0,
"eip211Transition": 0,
"eip214Transition": 0,
"eip658Transition": 0,
"eip150Transition": "0x0",
"eip160Transition": "0x0",
"eip161abcTransition": "0x0",
"eip161dTransition": "0x0",
"eip98Transition": "0x7fffffffffffff",
"eip145Transition": "0x38ada7",
"eip1014Transition": "0x38ada7",
"eip1052Transition": "0x38ada7",
"eip1283Transition": "0xd29240",
"eip1344Transition": "0xd29240",
"eip1706Transition": "0xd29240",
"eip1884Transition": "0xd29240",
"eip2028Transition": "0xd29240",
"eip2929Transition": "0xd29240",
"eip2930Transition": "0xd29240",
"maxCodeSize": 24576,
"maxCodeSizeTransition": "0x0"
},
"genesis": {
"seal": {
"authorityRound": {
"step": "0x0",
"signature": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
}
},
"difficulty": "0x20000",
"gasLimit": "0x989680"
},
"accounts": {
"0x0000000000000000000000000000000000000001": { "balance": "1", "builtin": { "name": "ecrecover", "pricing": { "linear": { "base": 3000, "word": 0 } } } },
"0x0000000000000000000000000000000000000002": { "balance": "1", "builtin": { "name": "sha256", "pricing": { "linear": { "base": 60, "word": 12 } } } },
"0x0000000000000000000000000000000000000003": { "balance": "1", "builtin": { "name": "ripemd160", "pricing": { "linear": { "base": 600, "word": 120 } } } },
"0x0000000000000000000000000000000000000004": { "balance": "1", "builtin": { "name": "identity", "pricing": { "linear": { "base": 15, "word": 3 } } } },
"0x0000000000000000000000000000000000000005": { "builtin": { "name": "modexp", "pricing": { "0": { "price": { "modexp": { "divisor": 20 } } }, "0xd29240": { "info": "EIP-2565: ModExp Gas Cost.", "price": { "modexp2565": {} } } } } },
"0x0000000000000000000000000000000000000006": { "builtin": { "name": "alt_bn128_add", "pricing": { "0": { "price": { "alt_bn128_const_operations": { "price": 500 } } }, "0xd29240": { "info": "EIP-1108 Istanbul HF", "price": { "alt_bn128_const_operations": { "price": 150 } } } } } },
"0x0000000000000000000000000000000000000007": { "builtin": { "name": "alt_bn128_mul", "pricing": { "0": { "price": { "alt_bn128_const_operations": { "price": 4000 } } }, "0xd29240": { "info": "EIP-1108 Istanbul HF", "price": { "alt_bn128_const_operations": { "price": 6000 } } } } } },
"0x0000000000000000000000000000000000000008": { "builtin": { "name": "alt_bn128_pairing", "pricing": { "0": { "price": { "alt_bn128_pairing": { "base": 100000, "pair": 80000 } } }, "0xd29240": { "info": "EIP-1108 Istanbul HF", "price": { "alt_bn128_pairing": { "base": 45000, "pair": 34000 } } } } } },
"0x0000000000000000000000000000000000000009": { "builtin": { "name": "blake2_f", "pricing": { "0xd29240": { "info": "EIP-152 Istanbul HF", "price": { "blake2_f": { "gas_per_round": 1 } } } } } },
"0xd9176e84898a0054680aec3f7c056b200c3d96c3": { "balance": "300000000000000000000000000" }
}
}
114 changes: 114 additions & 0 deletions src/Nethermind/Chains/spark.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
{
"name": "FuseNetwork",
"engine": {
"authorityRound": {
"params": {
"stepDuration": "5",
"blockReward": "0x0",
"blockRewardContractAddress": "0x52B9b9585e1b50DA5600f7dbD94E9fE68943162c",
"blockRewardContractTransition": 1000,
"validators": {
"multi": {
"0": {
"list": [ "0xba7829b381f07cca0d186bdf619fdc6c7f756d0a" ]
},
"1000": {
"safeContract": "0xC8c3a332f9e4CE6bfFFcf967026cB006Db2311c7"
},
"6905799": {
"list": [ "0x379e81df609e8235c9026f25a379d49a27b10d30","0xba7829b381f07cca0d186bdf619fdc6c7f756d0a","0xe4cc9b2836ba373c3ccf473cbb15ed07007963ee","0xbc048d3064fd912b40a9aadcf67a14fd4601db77"]
},
"6910120": {
"safeContract": "0xC8c3a332f9e4CE6bfFFcf967026cB006Db2311c7"
},
"6925000": {
"list": [ "0x379e81df609e8235c9026f25a379d49a27b10d30","0xba7829b381f07cca0d186bdf619fdc6c7f756d0a","0xe4cc9b2836ba373c3ccf473cbb15ed07007963ee","0xbc048d3064fd912b40a9aadcf67a14fd4601db77"]
}
}
}
}
}
},
"params": {
"gasLimitBoundDivisor": "0x400",
"maximumExtraDataSize": "0x20",
"minGasLimit": "0x1388",
"networkID" : "0x07b",
"eip155Transition": 0,
"validateChainIdTransition": 0,
"eip140Transition": 0,
"eip211Transition": 0,
"eip214Transition": 0,
"eip658Transition": 0,
"eip150Transition": "0x0",
"eip160Transition": "0x0",
"eip161abcTransition": "0x0",
"eip161dTransition": "0x0",
"eip98Transition": "0x7fffffffffffff",
"eip145Transition": "0x6bf64",
"eip1014Transition": "0x6bf64",
"eip1052Transition": "0x6bf64",
"eip1283Transition": "0x13d620",
"eip1344Transition": "0x13d620",
"eip1706Transition": "0x13d620",
"eip1884Transition": "0x13d620",
"eip2028Transition": "0x13d620",
"eip2929Transition": "0x13d620",
"eip2930Transition": "0x13d620",
"maxCodeSize": 24576,
"maxCodeSizeTransition": "0x0"
},
"genesis": {
"seal": {
"authorityRound": {
"step": "0x0",
"signature": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
}
},
"difficulty": "0x20000",
"gasLimit": "0x5F5E100"
},
"accounts": {
"0x0000000000000000000000000000000000000001": {
"balance": "1",
"builtin": { "name": "ecrecover", "pricing": { "linear": { "base": 3000, "word": 0 } } }
},
"0x0000000000000000000000000000000000000002": {
"balance": "1",
"builtin": { "name": "sha256", "pricing": { "linear": { "base": 60, "word": 12 } } }
},
"0x0000000000000000000000000000000000000003": {
"balance": "1",
"builtin": { "name": "ripemd160", "pricing": { "linear": { "base": 600, "word": 120 } } }
},
"0x0000000000000000000000000000000000000004": {
"balance": "1",
"builtin": { "name": "identity", "pricing": { "linear": { "base": 15, "word": 3 } } }
},
"0x0000000000000000000000000000000000000005": {
"builtin": { "name": "modexp", "activate_at": 0, "pricing": { "modexp": { "divisor": 20 } } }
},
"0x0000000000000000000000000000000000000006": {
"builtin": {
"name": "alt_bn128_add",
"activate_at": 0,
"pricing": { "linear": { "base": 500, "word": 0 } }
}
},
"0x0000000000000000000000000000000000000007": {
"builtin": {
"name": "alt_bn128_mul",
"activate_at": 0,
"pricing": { "linear": { "base": 40000, "word": 0 } }
}
},
"0x0000000000000000000000000000000000000008": {
"builtin": {
"name": "alt_bn128_pairing",
"activate_at": 0,
"pricing": { "alt_bn128_pairing": { "base": 100000, "pair": 80000 } }
}
},
"0xba7829b381f07cca0d186bdf619fdc6c7f756d0a": { "balance": "300000000000000000000000000" }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ public UInt256 GetGasPriceEstimate()

IEnumerable<UInt256> txGasPrices = GetSortedGasPricesFromRecentBlocks(headBlock.Number);
UInt256 gasPriceEstimate = GetGasPriceAtPercentile(txGasPrices.ToList()) ?? GetMinimumGasPrice(headBlock.BaseFeePerGas);
gasPriceEstimate = UInt256.Max(gasPriceEstimate, GetMinimumGasPrice(headBlock.BaseFeePerGas));
gasPriceEstimate = UInt256.Min(gasPriceEstimate!, EthGasPriceConstants.MaxGasPrice);
_gasPriceEstimation.Set(headBlockHash, gasPriceEstimate);
return gasPriceEstimate!;
Expand Down
5 changes: 5 additions & 0 deletions src/Nethermind/Nethermind.Runner/Data/static-nodes-fuse.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[
"enode://84ee9a7eb287e857c9baec48f3601382174516441e56c8e00e07fbf55d74db60861911a820aec80d6038a0909ae3165423b31644317b580e2f6dc54b3b9a7b66@35.205.73.124:30303",
"enode://1bb0253afcd0c6a04125165c23c911cf20da583f63b3e0f4ab16f70e48b454dc7da0a68329f3224fbf7f406386ee4e904923a826ecf1ee739bd4bcb6f46fc744@34.76.228.61:30303",
"enode://7bc2e851cad345437984d6550b1b98d7029b694f2793e2c592637a793b243760060a5a3e00d6212b75f1c534a97b41d532221071242d01116e9ff3c8dcc95672@95.217.1.4:30303"
]
6 changes: 6 additions & 0 deletions src/Nethermind/Nethermind.Runner/Data/static-nodes-spark.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[
"enode://beea6b15658e694f76d5ac7775c9be5cb88dfe12a67d464fdb1134ca5bf2d47f44047be935547780c8ec300920e2d684a4fe90c9ba1c66a6f559ac2ec0976d28@34.22.208.55:30303",
"enode://4b115030420718523198eaad02c68961814c1d2f2f1c437d25f6a05279438465865b454431b5b0d1e839f6c37d9d52668105eb285e6aa6362c0601ef4fb8854b@34.76.70.196:30303",
"enode://f1eb1ac3f624f6862fd2d6f56c30671d808088adef18a4fafd508665a3a3ce063553ff8be290247ed074ee759d2d05bf95b629a72e30eedd47e2f2df85d6f581@35.205.144.49:30303",
"enode://94230ecf060189d842d14a7c039d37aae328c317d6b0d66e4f1b67b307a6e64a11f5309d45a9c536824909cf828cf34eb730adcb60872cd723be832d2979f811@34.34.138.246:30303"
]
51 changes: 51 additions & 0 deletions src/Nethermind/Nethermind.Runner/configs/fuse.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"Init": {
"DiscoveryEnabled": true,
"WebSocketsEnabled": false,
"StoreReceipts" : true,
"ChainSpecPath": "chainspec/fuse.json",
"BaseDbPath": "nethermind_db/fuse",
"LogFileName": "fuse.logs.txt",
"StaticNodesPath": "Data/static-nodes-fuse.json"
},
"Sync": {
"FastSync": true,
"PivotNumber": 23564000,
"PivotHash": "0xb4dd1d85586bdf79d4e26ed41c4a50898b3046d23ce58df07a4266f2af6ee0f6",
"PivotTotalDifficulty": "8018413694124993953050959249522186134388665717",
"FastBlocks": true,
"UseGethLimitsInFastBlocks": false,
"FastSyncCatchUpHeightDelta": 10000000000
},
"Network": {
"DiscoveryPort": 30303,
"P2PPort": 30303,
"LocalIp": "0.0.0.0",
"ExternalIp": "0.0.0.0"
},
"JsonRpc": {
"Enabled": true,
"Timeout": 20000,
"Host": "0.0.0.0",
"Port": 8545,
"WebSocketsPort": 8546
},
"Metrics": {
"NodeName": "Fuse"
},
"Bloom": {
"IndexLevelBucketSizes": [
16,
16,
16
]
},
"Pruning": {
"Enabled": true,
"CacheMb": 1024,
"PersistenceInterval": 16384
},
"Mining": {
"MinGasPrice": "10000000000"
}
}
40 changes: 40 additions & 0 deletions src/Nethermind/Nethermind.Runner/configs/fuse_archive.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
"Init": {
"DiscoveryEnabled": true,
"WebSocketsEnabled": true,
"StoreReceipts" : true,
"ChainSpecPath": "chainspec/fuse.json",
"BaseDbPath": "nethermind_db/fuse_archive",
"LogFileName": "fuse_archive.logs.txt",
"StaticNodesPath": "Data/static-nodes-fuse.json"
},
"Network": {
"DiscoveryPort": 30303,
"P2PPort": 30303,
"LocalIp": "0.0.0.0",
"ExternalIp": "0.0.0.0"
},
"JsonRpc": {
"Enabled": true,
"Timeout": 20000,
"Host": "0.0.0.0",
"Port": 8545,
"WebSocketsPort": 8546
},
"Metrics": {
"NodeName": "Fuse_archive"
},
"Bloom": {
"IndexLevelBucketSizes": [
16,
16,
16
]
},
"Pruning": {
"Mode": "None"
},
"Mining": {
"MinGasPrice": "10000000000"
}
}
53 changes: 53 additions & 0 deletions src/Nethermind/Nethermind.Runner/configs/fuse_validator.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"Init": {
"DiscoveryEnabled": true,
"WebSocketsEnabled": false,
"StoreReceipts" : false,
"IsMining": true,
"ChainSpecPath": "chainspec/fuse.json",
"BaseDbPath": "nethermind_db/fuse",
"LogFileName": "fuse_validator.logs.txt",
"StaticNodesPath": "Data/static-nodes-fuse.json"
},
"Sync": {
"FastSync": true,
"PivotNumber": 22850000,
"PivotHash": "0x651c4a6688b184c615afba96ffb36ed5b80b3190ba31260b5bfdcd60e9e434d0",
"PivotTotalDifficulty": "7775452084143443890138109779815903631410512080",
"FastBlocks": true,
"UseGethLimitsInFastBlocks": false,
"FastSyncCatchUpHeightDelta": 10000000000
},
"Network": {
"DiscoveryPort": 30303,
"P2PPort": 30303,
"LocalIp": "0.0.0.0",
"ExternalIp": "0.0.0.0"
},
"JsonRpc": {
"Enabled": true,
"Timeout": 20000,
"Host": "127.0.0.1",
"Port": 8545
},
"Metrics": {
"NodeName": "Fuse"
},
"Bloom": {
"IndexLevelBucketSizes": [
16,
16,
16
]
},
"Pruning": {
"Enabled": true,
"CacheMb": 512,
"PersistenceInterval": 16384
},
"Mining": {
"Enabled": true,
"MinGasPrice": "10000000000",
"TargetBlockGasLimit": "20000000"
}
}
Loading

0 comments on commit 3405f09

Please sign in to comment.