Software Development Kits (SDKs) : Reborn

in #blockchain6 years ago

With ARK getting a totally new Core code, we felt it was necessary to streamline the same methodology and structure to our SDKs. As most of you know ARK has 15 SDK’s with more in the works. As such, the majority of our alternative programming language tools (most popular ones) have been rewritten from scratch.

Alternative programming language implementations to interact with the ARK blockchain have been re-thought, structured and re-written in a new way — each implementation has been decoupled and put into 2 repositories — Client and Crypto:

  • Client — the purpose of each client is to allow easy communication between the public API and end-user, while also providing an easy way to manage multiple connections.
  • Crypto — the purpose of crypto is to manage transaction serialization (AIP11), deserialization (AIP11), signing and verifying of transactions and to make it easy to work with transactions.

This is also known as a separation of concerns (SoC), which is a design principle for separating software into specific sections (each section challenges a separate concern), providing a layered and modularized way of development. The core value of SoC is simplifying development and maintenance of ARK’s software. When concerns are well isolated, individual sections can be easily reused, developed and updated independently. Additional value is the ability to improve or modify one section of the code at a later stage of development, without the need to know the details of other sections, and without having to make corresponding changes to those sections.

We’d also like to invite community developers who’d like to help keep these repositories updated to get in contact with our developer Brian in our Slack (Slack name “Brian [arkx.io]”) to talk more details.

With this new approach some of the old implementations will get deprecated in the upcoming weeks :
 — Arky ( a Python repository, maintained by delegate toons, will stay available at : https://github.com/Moustikitos/arky )
 — ARK-NET ( an old .NET implementation will stay available at : https://github.com/kristjank/ark-net )
 — ARK-GO ( and old GOLang implementation will stay available at : https://github.com/kristjank/ark-go )

Others will be replaced by Client and Crypto Libraries, as seen at https://ark.io/developers

New guidelines for development of the new SDKs can be found at:

Let’s list currently redone implementations (note that some of the SDK documentation is still in the writing as each programming language has its own, along with Java and Swift crypto /client implementations in the final stages of development ready in the next few days):

JavaScript is now part of the default package inside of the new Core and is accessible as part of the Core codebase. We’ll add TypeScript definitions to the JS Client and JS Crypto so you can use one package for JavaScript & TypeScript instead of what we currently have, which are two separate implementations ARK-JS and ARK-TS.

Software:

Documentation:

Software:

Software:

Software:

Software:

Software:

Software:

Software:

Software:

One of the most anticipated SDKs in development, C++, is also in the making (which will open the door to our IoT department and embedded systems). We’ll keep you informed of when it becomes available in a separate blog post (it’s very close).

If you are a developer then don’t forget you can take part of our Github Bounty Program where you can help with development and in return earn ARK tokens (plus if you are looking for a job at ARK what better way is there to apply than to prove your talent with code).

ARK.io | Github | Facebook | Twitter | Forum | Blog | Explorer | Shop