The work that certain developers do is “silent”, however highly valuable.
Being little known by the community in general, these programmers build tools for other colleagues, necessary as inputs for the final products, which are useful in the ecosystem.
Within this community of developers is the TxPipe team, made up of talented programmers who work “quietly”, providing open source tools and infrastructure for Cardano developers.
Simplifying the procedures required to deploy Cardano-specific infrastructure will lower the barrier to entry for developers, which in turn increases adoption.
The tools they build aim at integrating on-chain data with off-chain infrastructure.
TxPipe has a mission to provide developers with technology to facilitate the construction of applications on top of the Cardano ecosystem, with tools that will remain open and free forever.
TxPipe’s mission is to bring new developers to Cardano by providing tools that are focused on giving them a great experience.
The long-term plan is to build a PaaS (Platform as a Service) offering on top of these tools to streamline the development experience.
Since each project is unique, they propose to organize the stack in different layers. For early stage projects, they will provide a platform with all the necessary tools to develop, host and monitor Cardano DApps on top of the shared infrastructure.
TxPipe has developed five major tools to date. I’ll explain what they’re for.
Oura: The Tail of Cardano
It is a tool for pool operators, developers and anyone who wants to find information on the blockchain. Currently, there are tools to explore the Cardano blockchain, which are useful when looking for standardized or generic information, but the Oura use case is complementary, and involves looking at the blockchain for patterns of particular events.
Oura is, in essence, a tool to process information from certain events. A pipeline that connects to the tip of a Cardano node, via some Ouroboros mini-protocol combination (using a unix socket or tcp bearer), filters events that match a particular pattern, and then sends a payload succinct, self-contained utility to pluggable observers called “sinks.”
Oura is a native implementation of Rust, which is a lightweight, compiled, general-purpose, multi-paradigm programming language that supports pure functional, procedural, imperative, and object-oriented programming.
Github: https://github.com/txpipe/oura
At the end I leave an article I wrote (1).
Pallas: Rust-native Cardano building blocks
It is an expanding collection of modules that implement common Ouroboros/Cardano logic in native Rust. This box does not provide any particular application, it is intended to be used as a base layer to facilitate the development of higher level use cases such as browsers, wallets, etc (who knows, maybe even a full node in the distant future).
The repository is organized as a Cargo workspace. Each Pallas “building block” lives in its own box. The Pallas root drawer serves as an “all-in-one” dependency that re-exports all other modules in a hierarchical fashion, using the Cargo features to tailor the configuration to each use case.
Pallas is intended to be an expanding set of components.
Github: https://github.com/txpipe/pallas
Scrolls: Cardano Cache
It is a tool for building and maintaining read-optimized collections of Cardano chain entities. It tracks the history of the chain and aggregates all the data to reflect the current state of things. After all history is processed, Scrolls watches the end of the chain to keep collections up to date.
Examples of collections are: “utxo by address”, “chain parameters by epoch”, “pool metadata by pool id”, “tx cbor by hash”, etc.
In other words, Scrolls is nothing more than a map-reduce algorithm that aggregates the history of the string into dictionaries of key values specific to each case.
Github: https://github.com/txpipe/scrolls
Boros: Cardano Omnivore
A backend tool that consumes a stream of Cardano transactions from different pluggable sources and takes care of submitting them on-chain in an orderly and resilient fashion.
Currently under construction.
Aiken: Cardano Smart Contract Language
A new programming language and set of modular rust libraries for working with Untyped Plutus Core. This project aims to improve the smart contract development experience on cardano. See Catalyst’s proposal, below, for more details.
Catalyst Fund 9
TxPipe has submitted 4 proposals at FUND9 to continue its developments. Let’s see what they are about.
Kelley: Cardano K8s Operators
A Kubernetes operator is an application-specific controller that can help you package, deploy, and manage applications on Kubernetes clusters.
Kubernetes, commonly referred to as “K8s”, is an open source system for automating the deployment, scaling, and management of containerized applications. It was originally designed by Google and donated to the Cloud Native Computing Foundation (part of the Linux Foundation).
By defining high-level custom resources, a developer can provision applications without having to know the deeper-level configuration details associated with each application.
There are a lot of operators for well-known tools like Redis, Kafka, Elasticsearch, etc. This proposal involves the development of an operator for each of the following commonly used Cardano components: Cardano Node, DB-Sync, Ogmios, Submit API.
These operators will provide a canonical way to deploy Cardano-specific infrastructure on Kubernetes clusters.
You can see the original proposal on Catalyst.
Oura v2
Oura v1 has achieved a good level of adoption judging by the activity on the Github repository.
The team has identified, with the help of the community, several improvements that would require a high level of dedication, such as raising the performance of chain synchronization, an overhaul of the event data model that focuses on fewer types of events and more nested structures, which will allow the consumer to process the full Tx payloads, a new type of filter/sink that will allow the user to execute custom code by providing a WebAssembly file, integrating downstream services without the need for a middleman, and more.
You can see the original proposal on Catalyst.
Dolos: Cardano “Data Node”
Traditionally, nodes assume one of two roles: “relay” or “producer” of blocks. However, there is a third function that needs to be treated separately, and that is performed by nodes whose purpose is to resolve local state queries, or to serve as a data source for tools such as accounting data.
These nodes have different requirements than producer/relay nodes, and have better performance/cost optimizations.
The proposal is to develop a new node, tuned to solve a very limited scope, that is, to maintain an up-to-date copy of the general ledger and respond to customer queries, while requiring a small fraction of the network resources compared to the previous ones. producer/relay nodes.
You can see the original proposal on Catalyst.
I leave at the end, an article I wrote about the proposal (2).
Aiken: Smart Contract Toolchain
The goal is for Aiken to be an ultra-fast, portable and modular toolkit for Cardano application development written in Rust.
Having familiar syntax and an integrated toolchain will speed up development for both individual developers and small to medium teams.
The team believes that a C-family language with functional semantics is what the Cardano DApp ecosystem needs to go to the next level. As trivial as it sounds, syntax is a barrier to learning a new language.
So far, developers have contributed Haskell’s Untyped Plutus Core implementation to Rust. Next is the Untyped Plutus Core interpreter. Not only is this work useful for eventually building a full Cardano node in Rust, but it allows Aiken to own the full build toolchain for Cardano smart contracts.
You can see the original proposal on Catalyst.
I leave at the end an article about this proposal, which was written by my colleague Dickson Mwendia (3).
The Team
This young team presents itself as a group of experienced developers, passionate about Open Source and Cardano. It started as an idea of Santiago Carmuega, as the main contributor, and hopes over time to become a larger organization, providing tools for other developers, always keeping the open source philosophy.
Santiago Carmuega: Software Developer, with focus on cloud architecture and distributed systems
Federico Weill: Science & Tech entrepreneur, with focus on management and operations
Alejandro Drabenche: Senior Site Reliability Engineer, with +15 years of experience in the tech industry.
Alejandro Avagnina: Software Developer, building backends and frontends for more than 10 years.
Gabriel Marcos: Senior Software Engineer, more than +15 years of experience building consumer applications.
Lucas Rosa: Software engineer with a focus on blockchain and compilers
Kasey White: Blockchain Engineer and Smart Contract Expert, focused on empowering dApp creators
Rodrigo Santamaria: Front-end engineer focusing on product development and user experience
Website: https://txpipe.io/
. . .