CardanoSolutions / ogmios

❇️ A WebSocket JSON/RPC bridge for Cardano
https://ogmios.dev
Mozilla Public License 2.0
303 stars 91 forks source link
cardano cardano-node javascript json websocket


Ogmios: gateway to Cardano

**Ogmios** is a lightweight bridge interface for [cardano-node](https://github.com/intersectMBO/cardano-node/). It provides an **HTTP / WebSocket** API that enables applications to interact with a local cardano-node via **JSON+RPC-2.0**. ## Compatibility | Ogmios | Cardano-node (mainnet, preview, preprod) | | --- | --- | | **`v6.7.*`** | **`9.1.1`** | | `v6.6.*` | `9.1.1` | | `v6.5.*` | `9.0.0`, `9.1.0` | | `v6.4.*` | `8.9.3` | | `v6.3.*` | `8.9.2` | | `v6.2.*` | `8.9.0` | | `v6.1.*` | `8.7.3` | | `v5.6.*` | `1.35.4`, `1.35.7` | [SanchoNet]: https://sancho.network/ ## QuickStart Using [Homebrew](https://brew.sh/): ``` brew tap CardanoSolutions/formulas brew install ogmios ``` See our [Ogmios client starter kit](https://github.com/CardanoSolutions/ogmios-ts-client-starter-kit#ogmios-client-starter-kit) or jump right into the [user manual](https://ogmios.dev). ## Features
Fast synchronization of blocks from the Cardano network(s)↗️
Transaction submission with enhanced error messages↗️
Evaluation of Plutus script execution units↗️
Local mempool monitoring↗️
State queries
Network queryNetwork | Information --- | --- `blockHeight` | The chain's highest block number. `genesisConfiguration` | Get the genesis configuration of a specific era. `startTime` | The chain's start time (UTC). `tip` | The network's current tip.
Ledger queryLedgerState | Information --- | --- `constitution` | The current on-chain constitution. `constitutionalCommittee` | A complete summary of the constitutional committee. `epoch` | The current epoch of the ledger. `eraStart` | The information regarding the beginning of the current ledger era. `eraSummaries` | Era bounds and slot parameters details, required for proper slotting arithmetic. `liveStakeDistribution` | Distribution of the stake across all known stake pools, relative to the **total** stake in the network. `projectedRewards` | The projected rewards of an account in a context where the top stake pools are fully saturated. This projection gives, in principle, a ranking of stake pools that maximizes delegator rewards. `protocolParameters` | The current protocol parameters. `proposedProtocolParameters` | The last update proposal w.r.t. protocol parameters, if any. `rewardAccountSummaries` | Current delegation settings and rewards of chosen reward accounts. `rewardsProvenance` | Get details about rewards calculation for the ongoing epoch. `stakePools` | The list of all pool identifiers currently registered and active. `tip` | The current tip the ledger is at. Said differently, the slot number and header hash of the last block that has been processed by the ledger. `treasuryAndReserves` | The Ada value of the treasury and reserves of the protocol. `utxo` | Current UTXO, possibly filtered by output reference.
↗️
Dual WebSocket/HTTP support↗️
Structured JSON logging↗️
Health monitoring, with runtime and application statistics↗️
> [!TIP] > > Test vectors that cover every part of the protocol are [available here](https://github.com/CardanoSolutions/ogmios/tree/master/server/test/vectors). Use them without moderation for a smooth integration! # Roadmap ### Cutting-edge work The project keeps a [changelog 💾](./CHANGELOG.md) in which all past changes and _recent-but-not-yet-released_ changes can be seen. Changes in the changelog have been implemented and are available in latest builds from the `master` branch. ### Planned work The [github issues & milestones 🎯][milestones] list planned tasks that haven't been implemented but have reached enough maturity to be well-defined and scoped. Milestones have end-dates to give a broad estimate of when it is expected. ### Future work Finally, [discussions 💡][discussions] contains ongoing discussions regarding the future of Ogmios, with design decisions still under consideration. ## Clients / SDKs Ogmios provides a language-agnostic API which can be implemented using any WebSocket or HTTP client. If you prefer using a SDK in your favorite language, see below the available clients (_maintained by the community_):
Logo:TypeScript
TypeScript
Logo:Go
Go
Logo:Kotlin
Kotlin
Logo:Java
Java
Logo:Python
Python
Logo:Python
Elixir
Logo:C++
C++
## Sponsors A big thank to [all our sponsors 💖](https://github.com/CardanoSolutions#-sponsors).

:book: User Manual | :triangular_ruler: Contributing | :floppy_disk: Changelog | DiscordDiscord (#ogmios) | Twitter Twitter (@_KtorZ_)

Need more information? Have a look at the Frequently Asked Questions.

license=MPL-2.0

[discussions]: https://github.com/CardanoSolutions/ogmios/discussions/categories/ideas-feature-requests?discussions_q=sort%3Atop+category%3A%22Ideas+%2F+Feature+Requests%22 [milestones]: https://github.com/CardanoSolutions/ogmios/milestones