Skip to Content
⚠️ Alert: Sylan is under active development—only trust contract/wallet addresses announced on our official channels; we will never DM you, ask for funds, or run surprise airdrops/presales.
NodeOperations

Operations

Staking & Identity

  1. Approve SYL to the NodeRegistry and call registerAndStake(amount, payout, metadata) from your node EOA.
  2. Optionally stake more, update payout (setPayout) or metadata (setMetadata).
  3. To stop: requestUnstake(amount), wait unbondingPeriod, then finalizeUnstake() to receive tokens at payout.

Keep your node EOA minimal in privileges. Consider a distinct payout address.

Monitoring

  • Liveness: scrape /healthz; alert if down for >N minutes.
  • Consensus lag: track time from RequestRegistered to first submitSnapshot.
  • Miss rate: % of requests without a submitted snapshot.
  • RPC health: latency and error rate.
  • Gas usage: tx failures, revert reasons.

Alerting

  • Missed snapshot > X/min
  • Consecutive submit failures/backoffs
  • Finalize attempts failing repeatedly

Security Hardening

  • Use a dedicated EOA and store PRIVATE_KEY in a secrets manager; never commit .env to git.
  • Keep the host patched. Restrict egress/ingress except RPC + Provider Gateway + IPFS.
  • Rotate provider signer keys via the provider’s owner when needed; respect any timelock windows (see AccessRegistry docs).

Upgrades & Compatibility

  • The node is a small stateless service. Recreate containers or processes for upgrades.
  • Contracts are UUPS‑upgradeable; always consult Deploy → Addresses & ABIs and release notes before network changes.

Troubleshooting

  • bad provider signature → Provider gateway is signing the wrong domain/chain or using the old signer. Verify providerSigner and EIP‑712 domain.
  • api not active → Provider disabled the API listing.
  • Frequent backoffs → Increase provider rate limits or reduce your node count.
  • expires in past at create → The consumer’s expiry exceeded maxRequestExpiryMs or clock skew was large.

Example Provider Snapshot (JSON)

{ "apiId": "0x…", "seqNo": "123", "providerTs": "1724700000000", "ttl": "60000", "contentHash": "0x…", "providerSig": "0x…", "pointerURI": "ipfs://…" }

Appendix: Field & Endpoint Reference

  • Provider Gateway: GET /snapshot?apiId=<bytes32>&requestId=<bytes32> returns a ProviderSnapshot (see above)
  • Health: GET /healthz{ ok: true }
  • Key Contracts: AccessRegistry, APIConsensus, APIEscrow, NodeRegistry (see “Contracts” section)

When in doubt, test on Polygon Amoy first, then upgrade config for mainnet.

Last updated on