-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: finish auxiliary sections (#14)
- Loading branch information
Showing
9 changed files
with
2,432 additions
and
4,507 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains 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
File renamed without changes.
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# Clients | ||
|
||
These are project that implement the integrate the client-side of the UTxO RPC spec. | ||
|
||
## Oura by TxPipe | ||
|
||
Oura is a stream processing pipeline for Cardano. It's a tool that reads data from the Cardano blockchain and connects output events to external data processing systems (eg: Kafka, Redis, etc). It uses UTxO RPC as one of the main input protocols to read from Cardano. It's an open-source project developed by [TxPipe](https://txpipe.io). The source code and binary releases can be found in its [Github repository](https://github.com/txpipe/oura). | ||
|
||
| Module | Status | | ||
| ------- | -------------- | | ||
| Sync | ✅ supported | | ||
| Build | ⏺️ not required | | ||
| Submit | ⏺️ not required | | ||
| Watch | ⏺️ not required | | ||
| Cardano | ✅ supported | | ||
|
||
## Scrolls by TxPipe | ||
|
||
Scrolls is a data indexer for Cardano. It's a tool that reads blocks from the Cardano blockchain and executes a map/reduce algorithm to create key/value collections of specific on-chain values. It uses UTxO RPC as one of the main input protocols to read from Cardano. It's an open-source project developed by [TxPipe](https://txpipe.io). The source code and binary releases can be found in its [Github repository](https://github.com/txpipe/scrolls). | ||
|
||
| Module | Status | | ||
| ------- | -------------- | | ||
| Sync | ✅ supported | | ||
| Build | ⏺️ not required | | ||
| Submit | ⏺️ not required | | ||
| Watch | ⏺️ not required | | ||
| Cardano | ✅ supported | | ||
|
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,49 @@ | ||
import { Cards, Card, Callout } from 'nextra/components' | ||
|
||
# Introduction | ||
|
||
UTxO RPC (_u5c_ for short) is an interface tailored for interactions with UTxO-based blockchains, prioritizing performance and developer experience. By providing a common contract, a range of SDKs, and thorough documentation, UtxoRpc aims to facilitate seamless integration across an heteregenous ecosystems of clients and data providers. Utilizing event-driven patterns and the capabilities of Proto3, the interface supports efficient communication, cross-language compatibility, and adaptability between systems. | ||
UTxO RPC (_u5c_ for short) is an interface tailored for interactions with UTxO-based blockchains, prioritizing performance and developer experience. By providing a common contract, a range of SDKs, and thorough documentation, _UTxO RPC_ aims to facilitate: | ||
|
||
- **Reusability**: Enabling shared components that can be reused across different projects to simplify the integration effort. | ||
- **Interoperability**: A common interface to simplify integrations between different parties and avoid the common pitfall of vendor lock-in. | ||
- **Performance**: A serialized binary format which is compact and efficient, resulting in smaller message sizes and reduced network overhead compared to its JSON counterpart | ||
|
||
Please note that UTxO RPC is just a specification of an interface between agents and the blockchain, it doesn't provide any concrete client / provider implementations. The primary purpose of _u5c_ is to define a set of standardized methods, data structures, and communication patterns. | ||
|
||
## Use-cases | ||
|
||
The interface is divided into different modules that represent specific use-cases. Not every client will be interested in every module and not every provider will be serving every module. | ||
|
||
<Cards> | ||
<Card title="Build Module" icon="🛠️ " href="build/intro" /> | ||
<Card title="Submit Module" icon="✉️ " href="submit/intro" /> | ||
<Card title="Sync Module" icon="🔄 " href="sync/intro" /> | ||
<Card title="Watch Module" icon="👀 " href="watch/intro" /> | ||
</Cards> | ||
|
||
## Ledgers | ||
|
||
Modules are blockchain-agnostic, they need to be paired with a specific ledger to be used. A ledger represents a set of primitive structures that are specific to a particular blockchain ecosystem. | ||
|
||
<Callout type="info"> | ||
So far, the spec focuses only on Cardano. Other UTxO-based blockchains will follow. | ||
</Callout> | ||
|
||
<Cards> | ||
<Card title="Cardano Ledger" href="cardano" /> | ||
</Cards> | ||
|
||
## SDKs | ||
|
||
## Only a Specification | ||
Thanks to all of the available gRPC toolchain, generating SDKs in several programming languages is low effort. These are the official libraries maintained as part of the UTxO RPC effort. | ||
|
||
UtxoRpc serves just as a specification of an interface between agents and the blockchain, it doesn't provide any concrete client / provider implementations. The primary purpose of _u5c_ is to define a set of standardized methods, data structures, and communication patterns. | ||
<Cards> | ||
<Card title="Rust" href="rust" /> | ||
<Card title="Go" href="go" /> | ||
<Card title="NodeJs" href="nodejs" /> | ||
<Card title="Python" href="Python" /> | ||
</Cards> | ||
|
||
By providing a well-defined specification, _u5c_ encourages different actors in the ecosystem to contribute their own implementations while ensuring interoperability between them. This approach promotes collaboration and innovation among developers, as they can build on each other's work and leverage existing tools and libraries that adhere to the _u5c_ specification. | ||
<Callout type="info"> | ||
If you need a client in a language not found above, check the [gRPC documentation](https://grpc.io/docs/) for instruction on how to auto-generate client code from proto specs. | ||
</Callout> |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# Servers | ||
|
||
These are project that implement the server-side part of UTxO RPC spec. | ||
|
||
## Dolos by TxPipe | ||
|
||
Dolos is a Cardano "Data Node". It's a trimmed-down, Rust-based implementation of a Cardano node with the only purpose of serving data. It uses Ouroboros to sync from upstream relay nodes and keeps a local version of the chain. It uses UTxO RPC as the main interface for client integration. It's an open-source project developed by [TxPipe](https://txpipe.io). The source code and binary releases can be found in its [Github repository](https://github.com/txpipe/dolos). | ||
|
||
|
||
| Module | Status | | ||
| ------- | ------------- | | ||
| Sync | ✅ supported | | ||
| Build | 🛠️ development | | ||
| Submit | 🛠️ development | | ||
| Watch | 🛠️ development | | ||
| Cardano | ✅ supported | | ||
|
||
## Node API by Blink Labs | ||
|
||
Blink Labs' Node API is a query layer solution for interfacing with a Cardano node that exposes Ouroboros Node to Client (NtC) queries over multiple HTTP-based protocols. This will allow for consumption in client applications using methods of the developer’s choosing and provide capabilities for varying security scenarios. It includes UTxO RPC spec as the interface for its gRPC endpoints. | ||
|
||
| Module | Status | | ||
| ------- | ------------- | | ||
| Sync | 🛠️ development | | ||
| Build | 🛠️ development | | ||
| Submit | 🛠️ development | | ||
| Watch | 🛠️ development | | ||
| Cardano | 🛠️ development | | ||
|
||
## Demeter.run | ||
|
||
Demeter is a PaaS (Platform-as-a-Service) that provides managed Cardano infrastructure. One of their services consists of a cloud-hosted endpoint for Cardano integration using the UTxO RPC spec. Developers can sign-up and get access to the API on a per-request basis. More information available on their website: [Demeter.run](https://demeter.run). | ||
|
||
| Module | Status | | ||
| ------- | ------------- | | ||
| Sync | ✅ supported | | ||
| Build | 🛠️ development | | ||
| Submit | 🛠️ development | | ||
| Watch | 🛠️ development | | ||
| Cardano | ✅ supported | |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
import { Cards, Card, Callout } from 'nextra/components' | ||
|
||
# Teams | ||
|
||
These are development teams that are actively working on UTxO RPC spec and related implementations. | ||
|
||
<Cards> | ||
<Card icon={<img src="https://txpipe.io/favicon.ico" style={{ maxHeight: "30px"}} />} title="TxPipe" href="https://txpipe.io" /> | ||
<Card icon={<img src="https://blinklabs.io/favicon.ico" style={{ maxHeight: "30px"}} />} title="Blink Labs" href="https://blinklabs.io/"/> | ||
</Cards> | ||
|
||
<Callout type="info"> | ||
If you're working on UTxO RPC and want to be added to this page, please send a PR to our public [documentation repo](https://github.com/utxorpc/docs) | ||
</Callout> |
This file contains 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