Когда ARK получил совершенно новый код ядра, мы почувствовали необходимость упростить ту же методологию и структуру для наших SDK. Как большинство из вас знает, у ARK есть 15 SDK, и еще больше в разработке. Таким образом, большинство наших инструментов альтернативного языка программирования (самые популярные) были переписаны с нуля.
Реализации альтернативных языков программирования для взаимодействия с блокчейном ARK были переосмыслены, структурированы и переписаны по-новому - каждая реализация была отделена и помещена в 2 репозитория - Client и Crypto:
- Клиент - цель каждого клиента - упростить обмен данными между общедоступным API и конечным пользователем, а также предоставить простой способ управления несколькими подключениями.
- Крипто - цель криптографии - управлять сериализацией транзакций (AIP11), десериализацией (AIP11), подписанием и проверкой транзакций, а также упростить работу с транзакциями.
Это также известно как разделение задач (SoC), которое является принципом проектирования для разделения программного обеспечения на определенные разделы (каждый раздел вызывает отдельную проблему), обеспечивая многоуровневую и модульный способ развития. Основная ценность SoC - упрощение разработки и обслуживания программного обеспечения ARK. Когда проблемы хорошо изолированы, отдельные разделы можно легко повторно использовать, разрабатывать и обновлять независимо. Дополнительной ценностью является возможность улучшить или изменить один раздел кода на более позднем этапе разработки, без необходимости знать детали других разделов и без необходимости вносить соответствующие изменения в эти разделы.
Мы также хотели бы пригласить разработчиков сообщества, которые хотели бы поддерживать эти репозитории в обновлении, связаться с нашим разработчиком Брайаном в нашем Slack (имя Slack Brian [arkx.io]), чтобы поговорить об этом подробнее подробности.
С этим новым подходом некоторые из старых реализаций станут устаревшими в ближайшие недели:
- Arky (репозиторий Python, поддерживаемый мультяшными делегатами, останется доступным по адресу: https://github.com/Moustikitos/arky )
- ARK-NET (старая реализация .NET будет доступна по адресу: https://github.com/kristjank/ark-net )
- ARK-GO (и старая реализация GOLang будут доступны по адресу: https://github.com/kristjank/ark-go)
Другие будут заменены клиентскими и криптографическими библиотеками, как показано на https://ark.io/developers
Новые рекомендации по разработке новых SDK можно найти по адресу:
- Рекомендации для клиентов: https://docs.ark.io/v1.0/docs/clients-guidelines
- Рекомендации по криптографии: https://docs.ark.io/v1.0/docs/cryptography-guidelines
Давайте перечислим переделанные в настоящее время реализации (обратите внимание, что часть документации SDK все еще находится в стадии написания, поскольку каждый язык программирования имеет свой собственный, а также криптографические / клиентские реализации Java и Swift, которые находятся на заключительных этапах разработки и будут готовы в ближайшие несколько дней):
JavaScript теперь является частью пакета по умолчанию внутри нового ядра и доступен как часть кодовой базы ядра. Мы добавим определения TypeScript в JS Client и JS Crypto, чтобы вы могли использовать один пакет для JavaScript и TypeScript вместо того, что у нас есть в настоящее время, которые представляют собой две отдельные реализации ARK-JS и ARK-TS.
Программное обеспечение:
- Клиент JS: https://github.com/ArkEcosystem/core/tree/master/packages/client
- JS Crypto:
- Https://github.com/ArkEcosystem/core/tree/master/packages/crypto
Документация:
- Документы клиента JS: https://docs.ark.io/docs/clients-javascript
- JS Crypto Docs: https://docs.ark.io/docs/cryptography-javascript
Программное обеспечение:
- Клиент PHP: https://github.com/ArkEcosystem/php-client
- PHP Crypto: https://github.com/ArkEcosystem/php-crypto
Документация:
- Документы клиента PHP: https://docs.ark.io/docs/clients-php
- PHP Crypto Docs: https://docs.ark.io/docs/cryptography-php
Пакеты также опубликованы на Packagist:
- Клиент PHP: https://packagist.org/packages/arkecosystem/client
- PHP Crypto: https://packagist.org/packages/arkecosystem/crypto
Программное обеспечение:
- Клиент Python: https://github.com/ArkEcosystem/python-client
- Python Crypto: https://github.com/ArkEcosystem/python-crypto
Документация:
- Клиентская документация Python: https://docs.ark.io/docs/clients-python
- Python Crypto Docs: https://docs.ark.io/docs/cryptography-python
Программное обеспечение:
- Клиент Go: https://github.com/ArkEcosystem/go-client
- Go Crypto: https://github.com/ArkEcosystem/go-crypto
Документация:
- Документы клиента Go: https://docs.ark.io/docs/clients-go
- Go Crypto Docs: https://docs.ark.io/docs/cryptography-go
Программное обеспечение:
- Клиент Ruby: https://github.com/ArkEcosystem/ruby-client
- Ruby Crypto: https://github.com/ArkEcosystem/ruby-crypto
Документация:
- Документы клиента Ruby: https://docs.ark.io/docs/clients-ruby
- Документы по криптографии Ruby: https://docs.ark.io/docs/cryptography-ruby
Пакеты также публикуются на RubyGems:
- Клиент Ruby: https://rubygems.org/gems/arkecosystem-client
- Ruby Crypto: https://rubygems.org/gems/arkecosystem-crypto
Программное обеспечение:
- Клиент Elixir: https://github.com/ArkEcosystem/elixir-client
- Elixir Crypto: https://github.com/ArkEcosystem/elixir-crypto
Документация:
- Документы клиента Elixir: https://docs.ark.io/docs/clients-elixir
- Elixir Crypto Docs: https://docs.ark.io/docs/cryptography-elixir
Пакеты также публикуются в Hex:
- Клиент Elixir: https://hex.pm/packages/arkecosystem_client
- Elixir Crypto: https://hex.pm/packages/arkecosystem_crypto
Программное обеспечение:
- Клиент Java: https://github.com/ArkEcosystem/java-client
- Java Crypto: https://github.com/ArkEcosystem/java-crypto
Документация:
- Документы клиента Java: https://docs.ark.io/docs/clients-java
- Java Crypto Docs: https://docs.ark.io/docs/cryptography-java
Поскольку язык программирования Kotlin является производным от Java, в будущем предполагается, что любые производные от Java будут использовать сами пакеты Java.
Программное обеспечение:
- Клиент .NET: https://github.com/ArkEcosystem/dotnet-client
- .NET Crypto: https://github.com/ArkEcosystem/dotnet-crypto
Документация:
- Клиентская документация .NET: https://docs.ark.io/docs/clients-dotnet
- .NET Crypto Docs: https://docs.ark.io/docs/cryptography-dotnet
Пакеты, также опубликованные на Nuget:
- Клиент .NET: https://www.nuget.org/packages/ArkEcosystem.Client
- .NET Crypto: https://www.nuget.org/packages/ArkEcosystem.Crypto
Программное обеспечение:
- Swift Client: https://github.com/ArkEcosystem/swift-client
- Swift Crypto: https://github.com/ArkEcosystem/swift-crypto
Документация:
- Документы клиента Swift: https://docs.ark.io/docs/clients-swift
- Swift Crypto Docs: https://docs.ark.io/docs/cryptography-swift
Один из самых ожидаемых SDK в разработке, C ++, также находится в процессе разработки (который откроет двери нашему отделу IoT и встроенным системам). Мы будем держать вас в курсе, когда он станет доступен в отдельном сообщении в блоге (он очень близок).
Если вы разработчик, не забывайте, что вы можете принять участие в нашей Программе Github Bounty, где вы можете помочь с разработкой и взамен заработать токены ARK (плюс, если вы ищете работу в ARK, что может быть лучше, чем доказать свой талант с помощью кода).
Следите за нами в социальных сетях (Twitter | Facebook | Reddit) и следите за обновлениями нашего блога на Medium и Steemit.