Pre-mainnet research network No public testnet yet Protocol manifest r28 Shielded transfers experimental Current status
Implemented

Networking, staking and economics

Nodes connect over libp2p with GossipSub and join through operator-chosen anchor peers, which act as trust roots. RSC pays for gas, secures staking and is issued as block rewards. The values below are development defaults; a public genesis will fix its own.

§1Peer-to-peer layer#

MechanismBehavior
Transportlibp2p host. GossipSub carries transactions, proposals, votes and evidence; direct streams carry sync.
CompatibilityThe handshake binds chain ID, genesis and consensus commitment. Mismatched nodes never connect.
DiscoveryConfigured bootstrap peers, plus bounded referrals from up to 16 connected anchors. No DHT and no DNS discovery; mDNS on the local link only.
AnchorsEvery bootstrap peer is an anchor: protected from pruning and redialed in rotation. Operators should configure at least two, on different operators and subnets.
Eclipse monitorChecks anchor, outbound and peer-floor health every 15 s. When unhealthy it forces an anchor redial and raises an alert; it never sheds peers automatically.
Diversity50 peers by default, at most 2 per subnet.
ReconnectA lost bootstrap peer is redialed after 1 s; checks run every 5 s while below 3 peers.
Peer scoringPenalties for corrupt data (−100) and each false height claim (−15), decaying over time; misbehaving peers are banned.
SyncFinalized blocks only, each re-verified by the importer, with budgeted frames and a throughput floor.
Snapshot bootstrapA head installed from a snapshot was never executed locally, so forward sync waits until it is certified against a live peer's header.

Safety does not depend on the network: an imported block always passes through the finalized-block importer. Liveness does, which is why availability is the current focus of review. See review history.

§2Staking#

  • Validators stake at least 10,000 RSC and join the active set, up to 128, at the next epoch boundary.
  • Delegators delegate to a validator and receive non-rebasing, validator-specific shares. A share is worth the pool's tokens divided by its outstanding shares.
  • Share transfer moves shares between holders without minting, burning or moving pool tokens. A holder can hold one validator's shares at a time, active validators cannot receive them, and sessions cannot transfer them.
  • Unbonding takes 14 epochs. Earned time weight survives transfers and full exits, and slashing continues to apply to the underlying pool.
  • Vault interface: precompile 0x104 exposes ERC-4626-style reads for contracts. It is not an ERC-20 token: there is no approve, transfer or allowance.

§3Issuance, burns and penalties#

FlowRule
Block rewardAbout 0.667 RSC per block, set so that 2 RSC are issued per 6 s of wall-clock at the 2 s target
Reward splitPer epoch, by participation and time-weighted delegation
Base feeBurned
Priority tipPaid to the proposer
Name registration and renewalBurned, from 500 down to 5 RSC by label length
Grant depositsLocked and refunded, not burned
Double signing5% of stake slashed
Downtime0.1% slashed and jailed, judged by the signed ratio over a 300-block participation window
Not yet defined

No public genesis allocation, supply schedule or distribution has been defined. Any future one will be published here before a public network launches.

§4Public RPC#

Node defaults limit each client IP to 100 requests per second (burst 200) and 10 submissions per second (burst 20); submissions count against both. Public endpoints sit behind a TLS reverse proxy that owns per-client limits, because a node behind a proxy cannot tell clients apart. Whatever the per-client limits, the aggregate must stay under the chain's measured ceiling.

Sources: internal/p2p, internal/txpool, internal/state/liquid_staking.go, internal/consensus/rewards.go, configs/config.toml; node operation guide; P2P threat model.

Cite this page
@misc{resilience-protocol-network,
  title  = {{Networking, staking and economics}},
  author = {{Resilience Network}},
  year   = {2026},
  note   = {Reference implementation c3acec4, protocol manifest r28},
  url    = {https://resiliencenetwork.xyz/protocol/network/}
}