Ouroborus networking package development for JavaScript developers

Do repost and rate:

 

CARDANO

Haskell, the core programming language of the Cardano blockchain, is a perfect choice for building critical infrastructures in the modern financial system. As a functional programming language, it allows developers to produce reliable, robust and highly secure code. However, despite serving as the basis for Cardano's Plutus and Marlowe smart contracts, Haskell is still not among the most widely used languages in today's software development world.

With both on-chain and off-chain code from the Cardano ecosystem implementing Haskell, most new developers feel limited due to the lack of libraries for networking in other languages. Ashish, a stakepool operator and one of the developers behind Cardanoscan, is looking to build an Ouroboros networking package in JavaScript, which will allow developers to interact with Cardano nodes by simply installing the NPM package.

Ashish, who will lead a team of two other developers to build the networking package in JavaScript, says his team has the relevant experience and skills to undertake this project. The team, has already implemented part of the networking layer within Cardanoscan's custom backend system.

Overview of the Ouroboros Networking Library

The Cardano node uses an implementation of Haskell-based mini-protocols to communicate with other nodes in the network. These protocols are low-level networking specifications defined by IOHK. If you want to communicate with the Cardano node directly without using the Cardano command line interface (CLI), you can use a suite of mini-protocols for networking. Ouroboros is one such networking library/package that eliminates the dependency on CLI, thus giving you more development flexibility to query Cardano blocks, get network status, send transactions to the node or access on-chain data.

The networking library consists of two components: the mini-protocols and a data parser. The miniprotocols help communicate with the node and provide CBOR-encoded data from the Cardano blockchain. The data parser, will parse the data and convert it into a JSON object that developers can use efficiently.

Bringing endless possibilities to the Cardano ecosystem.

The JavaScript-based Ouroboros networking library will allow developers to build projects of any size in Cardano. One example is Cardanoscan, a leading explorer of the Cardano blockchain, which implements this networking library, as one of its core components. Developers will only need to install the npm Ouroboros package, and start building on Cardano with minimal configuration. With this package, developers can quickly get up and running with tools such as Cardano's metadata explorers, pool explorers, analytics dashboards, wallet backend, and bots. Creating multi-asset dashboards and tracking updates to pools or any other on-chain data will be a possibility, even for new developers.

In addition to the features already mentioned, the library will also allow you to access CBOR raw data for debugging purposes. The goal of building this package is to bring Cardano to a wider developer community so that we can see the ecosystem grow day by day.

In its current state, the networking package only implements the features required by the Cardanoscan explorer, which was an internal project of the proposing team. With this proposal, the team wants to build on their existing work and create a more mature, maintainable and feature-rich networking library. The plan, is to showcase existing work and enhance it to include the following:

- Chain-Sync chain synchronization protocol (limited implementation of the protocol already available).

- Transaction sending protocol

- Block extraction protocol

- Local state query protocol

- Ping-Pong protocol

- Data parser based on CDDL specifications

- MUX implementation (to provide support for communicating with multiple mini-protocols simultaneously)

- Test suite and examples

The implementation of this open source networking library will follow all specifications defined by IOHK to ensure that it maintains the integrity of the Cardano protocol. In addition, the team will also perform block hash validation as part of the test suites. From a development point of view, the construction of the library features will take a functional approach, but there will be easy to consume methods such as an API for end users (developers).

Project budget and timeline

The project will focus on leveraging the already available implementation of the protocol, which has limited features. As mentioned, the package is not yet advanced, so Ashish and the team will have to build a high performance Nodejs package with all the features listed above. A lot of manual testing and working with on-chain data will be required to ensure that the package works efficiently and adheres to the protocol specifications defined by the IOHK.

According to the minds behind this project, it would take them three to four months to deliver the library for the network, with two developers working on the project full time. The team is therefore requesting total funding of $80,000 to make the Ouroboros networking library project a reality. Of this amount, $77,000 will be used as salary for two full-time developers during the development period. The team will also spend $2,000 on cloud virtual machine costs (Relay on the test network, Relay on the main network and node for testing/development). The remaining $1,000 will be spent on other infrastructure and miscellaneous costs.

Final thoughts

JavaScript is one of the most widely used programming languages with a low entry level of difficulty. Having a JavaScript package that allows developers to build and develop on top of Cardano will significantly boost a new family of projects and tools around our ecosystem.

Regulation and Society adoption

Ждем новостей

Нет новых страниц

Следующая новость