Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Gravity Cluster Configuration - Cross-Store Desync Suite (gravity-audit #703/#704)
#
# Single node: the cross-store reth-ahead-of-consensus desync is a PER-NODE
# crash-consistency bug between reth's execution rocksdb and the aptos consensus
# DB, so a single validator is enough to reproduce it (no 4-validator quorum
# needed; that only adds flakiness/time).
#
# UNIQUE base_dir + UNIQUE ports so this suite never collides with the existing
# suites (single_node 8545, four_validator 8546-8549, vfn/pfn 8645-8654 /
# 8745-8754, fuzzy 18545+). Everything here lives in its own 6480/6490, 89xx,
# 9050, 10300, 1324, 12324 ranges.

[cluster]
name = "gravity-devnet-desync"
base_dir = "/tmp/gravity-cluster-desync"


[genesis_source]
genesis_path = "./artifacts/genesis.json"
waypoint_path = "./artifacts/waypoint.txt"

[[nodes]]
id = "node1"
role = "genesis"
# Same as every other suite: build/reuse the repo's quick-release gravity_node.
# deploy.sh uses <project_path>/target/quick-release/gravity_node and only
# builds if it is missing. (When running from a git worktree that has no
# target/ of its own, point this at the shared checkout instead, e.g.
# source = { bin_path = "/abs/path/to/target/quick-release/gravity_node" }.)
source = { project_path = "../" }
host = "127.0.0.1"
validator_port = 6480
vfn_port = 6490
rpc_port = 8945
metrics_port = 9050
inspection_port = 10300
https_port = 1324
authrpc_port = 8953
reth_p2p_port = 12324

[faucet_init]
num_accounts = 100
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Gravity Genesis Configuration - Cross-Store Desync Suite (gravity-audit #703/#704)

[dependencies.genesis_contracts]
repo = "https://github.com/Galxe/gravity_chain_core_contracts.git"
ref = "main"

# Genesis validators with stake and voting power
[[genesis_validators]]
id = "node1"
address = "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
host = "127.0.0.1"
validator_port = 6480
vfn_port = 6490
stake_amount = "10000000000000000000"
voting_power = "10000000000000000000"
consensus_pop = "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"

[genesis]
chain_id = 1337
epoch_interval_micros = 60000000 # 60 second
major_version = 1
consensus_config = "0x0301010a00000000000000280000000000000001010000000a000000000000000100010200000000000000000020000000000000"
execution_config = "0x00"
initial_locked_until_micros = 1798848000000000

[genesis.faucet]
address = "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"
balance = "0x2000000000000000000000000000000000000000000000000000000000000000"

[genesis.validator_config]
minimum_bond = "1000000000000000000"
maximum_bond = "1000000000000000000000000"
unbonding_delay_micros = 604800000000
allow_validator_set_change = true
voting_power_increase_limit_pct = 20
max_validator_set_size = "100"
auto_evict_enabled = false
auto_evict_threshold_pct = 0

[genesis.staking_config]
minimum_stake = "1000000000000000000"
lockup_duration_micros = 86400000000
unbonding_delay_micros = 86400000000

[genesis.governance_config]
min_voting_threshold = "1000000000000000000"
required_proposer_stake = "10000000000000000000"
voting_duration_micros = 604800000000

[genesis.randomness_config]
variant = 1
secrecy_threshold = 9223372036854775808
reconstruction_threshold = 12297829382473033728
fast_path_secrecy_threshold = 12297829382473033728

[genesis.oracle_config]
source_types = [1]
callbacks = ["0x00000000000000000000000000000001625F4001"]

[genesis.oracle_config.bridge_config]
deploy = true
trusted_bridge = "0xcbEAF3BDe82155F56486Fb5a1072cb8baAf547cc"
trusted_source_id = 11155111

[[genesis.oracle_config.tasks]]
source_type = 0
source_id = 11155111
task_name = "sepolia"
config = "gravity://0/11155111/events?contract=0x0f761B1B3c1aC9232C9015A7276692560aD6a05F&eventSignature=0x5646e682c7d994bf11f5a2c8addb60d03c83cda3b65025a826346589df43406e&fromBlock=10201260"

# JWK config - Google OIDC provider
[genesis.jwk_config]
issuers = ["0x68747470733a2f2f6163636f756e74732e676f6f676c652e636f6d"]

[[genesis.jwk_config.jwks]]
kid = "f5f4c0ae6e6090a65ab0a694d6ba6f19d5d0b4e6"
kty = "RSA"
alg = "RS256"
e = "AQAB"
n = "2K7epoJWl_aBoYGpXmDBBiEnwQ0QdVRU1gsbGXNrEbrZEQdY5KjH5P5gZMq3d3KvT1j5KsD2tF_9jFMDLqV4VWDNJRLgSNJxhJuO_oLO2BXUSL9a7fLHxnZCUfJvT2K-O8AXjT3_ZM8UuL8d4jBn_fZLzdEI4MHrZLVSaHDvvKqL_mExQo6cFD-qyLZ-T6aHv2x8R7L_3X7E1nGMjKVVZMveQ_HMeXvnGxKf5yfEP0hIQlC_kFm4L_1kV1S0UPmMptZL2qI4VnXqmqI6TZJyE-3VXHgNn1Z1O_9QZlPC0fF0spLHf2S3nNqI0v3k2E7q3DkqxVf5xvn7q_X-gPqzVE9Jw"
Loading
Loading