Running a full node is unremarkable: one binary, one data directory, no external database. Becoming a sequencer means bonding GIF and accepting that missed slots cost money.
sync modes
Snapshot sync downloads a recent object root and its state, then follows the head; it is what you want for an explorer or a wallet backend. Archive sync replays from genesis and keeps every historical object root, which is what you need to serve proofs at arbitrary heights. Archive is roughly nine times the disk for the same head state.
hardware
Objects are small but numerous, so the bottleneck is random reads rather than raw capacity. An NVMe drive with decent IOPS matters far more than core count. Eight cores and 32 GB of RAM will keep up with the head comfortably; sequencers should double the RAM to hold the mempool and proof cache.
bonding
A sequencer bonds 250,000 GIF into the staking module and joins the set at the next epoch boundary. Slots are assigned in a fixed order within the epoch. Missing a slot produces an empty block and a small penalty; signing two blocks at the same height is equivocation and costs the whole bond.
exiting
Unbonding takes one full epoch plus 4096 blocks, during which the bond is still slashable. This is deliberately boring: the delay exists so that a sequencer cannot sign a bad block and withdraw before anyone notices.
There is no separate consensus client and no beacon chain. One process, one config file. Most of the operational work is making sure the disk does not fill up during a mint wave.
| profile | requirements | notes |
|---|---|---|
| snapshot node | 4 cores, 16 GB, 400 GB NVMe | follows head, no historical proofs |
| archive node | 8 cores, 32 GB, 3.5 TB NVMe | serves proofs at any height |
| indexer | 8 cores, 64 GB, 4 TB NVMe | archive plus denormalised views |
| sequencer | 16 cores, 64 GB, 4 TB NVMe | requires a 250,000 GIF bond |
| bandwidth | ~40 Mbit sustained | higher during mint waves |
| ports | 30333 p2p, 9933 rpc | p2p must be reachable |
$ gifd init --network gifchain-1 $ gifd sync --mode snapshot --peers 64 > fetching object root 0x9be4...0f21 > state 2.1 GB / 2.1 GB ....... ok > following head at 4128733 $ gifd stake bond --amount 250000 --from ~/.gifd/key > bond accepted, active at epoch 1008
