Seeder
Last updated
Last updated
Repository: Seeder GitHub
The Seeder plays a crucial role in coordinating transaction orderers (tx_orderers) by providing the necessary information for network communication.
To become a tx_orderer, a node must first register itself in the LivenessServiceManager contract. Once registered, it can join a cluster through the Seeder. The Seeder then verifies the node’s wallet address in the Liveness Contract before storing its IP address.
After successful registration, the tx_orderer receives the IP addresses of other peers in the cluster, enabling seamless internal communication between nodes.
The Seeder functions as a key-value store, mapping tx_orderer addresses to their corresponding RPC URLs.
Stores tx_orderer addresses as keys and their RPC URLs as values.
Ensures that only tx_orderers registered in the LivenessServiceManager contract can register on the Seeder.
To register, a tx_orderer must send a signed message containing:
Tx_Orderer Address
External RPC URL (handles user transactions)
Cluster RPC URL (for inter-cluster messages with signature verification)
Cluster ID (received upon registering with the LivenessServiceManager contract)
When a registration request is received, the Seeder:
Verifies the message signature.
Confirms that the tx_orderer is registered on the LivenessServiceManger contract.
Checks the accessibility of the external RPC URL via the /health
endpoint.
Upon successful validation, the tx_orderer's address and RPC URLs are stored in the Seeder, making them available to Secure RPC, Tx_Orderers, and Rollups.
A tx_orderer can deregister by sending a signed message containing:
Tx_Orderer Address
Cluster ID
When a deregistration request is received, the Seeder:
Verifies the message signature.
Checks if the tx_orderer has been removed from the LivenessServiceManager contract.
If confirmed, the Seeder removes the tx_orderer’s address, making its RPC URLs unavailable.