You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add the two parameterless read-only methods per the Stellar RPC spec.
getVersionInfo reports the komet-node package version, all-zeros commit
hash and epoch build timestamp (nothing is baked in at build time), the
komet package as the Captive Core, and protocolVersion 22 as a JSON
number. getFeeStats returns constant fee distributions (there is no fee
market; every statistic is the 100-stroop network minimum over an empty
sample) with the stellar-rpc wire types — all fields except ledgerCount
as decimal strings — and a live latestLedger number from metadata.json.
Dispatch and response formatting live in node.md; server.py only
supplies the version strings, which come from Python package metadata
that K cannot read.
Copy file name to clipboardExpand all lines: docs/architecture.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -51,7 +51,7 @@ flowchart TB
51
51
52
52
→ **[Detailed documentation](server.md)**
53
53
54
-
The server implements six RPC methods — `getHealth`, `getNetwork`, `getLatestLedger`, `sendTransaction`, `getTransaction`, and `traceTransaction` — and the K semantics answer all of them.
54
+
The server implements eight RPC methods — `getHealth`, `getNetwork`, `getLatestLedger`, `getVersionInfo`, `getFeeStats`, `sendTransaction`, `getTransaction`, and `traceTransaction` — and the K semantics answer all of them.
55
55
56
56
`sendTransaction` always returns `PENDING` and clients poll `getTransaction` for the result — matching the Stellar RPC async pattern even though the transaction executes synchronously. See [server.md](server.md) for details.
57
57
@@ -177,6 +177,6 @@ sequenceDiagram
177
177
178
178
-`resultXdr` / `resultMetaXdr` in `getTransaction` responses (contract return values)
179
179
-`simulateTransaction` (dry-run without state mutation)
180
-
-`getEvents`, `getLedgerEntries`, `getFeeStats` and other read-only RPC methods
180
+
-`getEvents`, `getLedgerEntries`, `getTransactions`, `getLedgers` and other read-only RPC methods
181
181
-`ExtendFootprintTTL` and `RestoreFootprint` operations
182
182
-`SCVec` / `SCMap` contract-argument types in the request encoder (`scval_to_json`)
→ #finalizeTx → record receipt + bump ledger → #respond(...)
@@ -61,6 +62,8 @@ If `request.json` is absent, `insert-handleRequestFile` does not fire and K halt
61
62
-`getHealth` → `{ "status": "healthy" }`
62
63
-`getNetwork` → `{ "friendbotUrl": null, "passphrase": ..., "protocolVersion": ... }` (passphrase/version come from the request, keeping the semantics network-agnostic)
-`getVersionInfo` → echoes the version fields the server put into the envelope (`version`, `commitHash`, `buildTimestamp`, `captiveCoreVersion` — package metadata lives on the Python side); `protocolVersion` is a JSON number
66
+
-`getFeeStats` → constant `#feeDistribution` objects (komet-node has no fee market) for `sorobanInclusionFee`/`inclusionFee`, plus a live `latestLedger` number from `metadata.json`; all distribution fields except `ledgerCount` are decimal strings, matching real stellar-rpc's Go `,string` encoding
64
67
-`getTransaction` → reads the hash's `receipts/receipt_<hash>.json` file; returns the stored receipt merged with the current `latestLedger`/`latestLedgerCloseTime`, or `{ "status": "NOT_FOUND", ... }` when the file is absent
65
68
66
69
`#respond(ID, RESULT)` is the shared terminal: it writes the JSON-RPC envelope to `response.json`, removes `request.json`, and sets the exit code to 0.
`getVersionInfo` reports the komet-node package version as the RPC server version and the komet package (the K semantics of Soroban executing the transactions) as the "Captive Core". komet-node is a Python package, so no commit hash or build timestamp is baked in at build time — those fields are all-zeros / epoch placeholders with the spec-correct types. `protocolVersion` is a JSON number.
`getFeeStats` returns constant fee distributions: komet-node has no fee market, so every statistic is the network minimum inclusion fee of 100 stroops over an empty sample (`transactionCount: "0"`, `ledgerCount: 0`). Matching real stellar-rpc, every distribution field except `ledgerCount` is a JSON string holding a decimal number; `latestLedger` is a JSON number read live from `metadata.json`.
0 commit comments