feat: Stellar family support (stellar, stellar-testnet)#287
Open
artemrootman wants to merge 4 commits into
Open
feat: Stellar family support (stellar, stellar-testnet)#287artemrootman wants to merge 4 commits into
artemrootman wants to merge 4 commits into
Conversation
Also bumps the public registry submodule to the stellar chain entry (drpcorg/public#239).
The first family with no dshackle surface to inherit - stellar was never actually served by dshackle (dead include-list entry); the method spec is the complete 12-method stellar-rpc (soroban-rpc) JSON-RPC API. - stellar_specific: poll head via getLatestLedger (SCP finality - ledgers are final on close, no reorgs). - stellar_validations: chain validation by getNetwork passphrase (the registry chain-ids ARE the network passphrases; compare is EqualFold because the registry loader lowercases chain-ids globally) and getHealth health mapping - the node polices its own >30s head staleness, data-store bootstrap maps to Syncing. - stellar_labels: stellar-rpc + version truncated at the commit suffix. - stellar_bounds: retention-window bounds from getHealth.oldestLedger as BLOCK+TX (no STATE - stellar-rpc has no historical state at all). - registry: Stellar BlockchainType + factory case + method-spec name; chains.yaml entries come from the drpcorg/public submodule bump (drpcorg/public#239).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds the Stellar blockchain family (
BlockchainType = "stellar") served via stellar-rpc (Soroban RPC). The first family with no dshackle surface to inherit — stellar was never actually served by dshackle (its include-list entry references a chain dshackle doesn't know); the method spec is simply the complete 12-method stellar-rpc JSON-RPC API.Design doc:
docs/superpowers/specs/2026-07-18-stellar-support-design.md.Stacked on #286 (ton family). Depends on drpcorg/public#239 — this branch pins the registry submodule to that commit (stellar chain entries, chain-ids = network passphrases); re-pin to the merge commit once it lands.
How
The cleanest family in the stack — standard JSON-RPC 2.0, standard error codes, zero translations:
stellar_specific: poll head viagetLatestLedger(SCP finality — ledgers final on close, no reorgs).stellar_validations: chain validation bygetNetworkpassphrase (the registry chain-ids are the passphrases verbatim; EqualFold compare since the registry loader lowercases chain-ids globally); health viagetHealth— the node polices its own >30s head staleness, so unhealthy arrives as a -32603 error (bootstrap message → Syncing, staleness → Unavailable).stellar_labels:stellar-rpc+ version truncated at the commit suffix (getVersionInfo).stellar_bounds: retention-window bounds fromgetHealth.oldestLedgeras BLOCK+TX — deliberately no STATE bound, stellar-rpc has no historical state at all (getLedgerEntriesis live-only).sendTransactionstays default-dispatch: it's async enqueue with core statuses in the result (PENDING/DUPLICATE/TRY_AGAIN_LATER/ERROR); broadcast with DUPLICATE-as-success reconciliation is a follow-up.Testing