Криптовалюта Bytecoin (BCN) (API криптовалюты)

Криптовалюта Bytecoin (BCN) (API криптовалюты)

За последнее время командой разработчиков Bytecoin было проделано много работы в области рефакторинга ядра исходного кода валюты. Этот процесс начался еще с версии 0.8.11, в которой впервые появился High-Level API. Шестого апреля команда выпустила Bytecoin Reference Client версии 1.0.3., который является очередным значительным обновлением ядра.

BCN
Ниже будет объяснено, что происходит «под капотом» в Bytecoin. Данное описание является ключевым для понимания перспективного плана Bytecoin.

Релиз версии 1.0.3. сфокусирован на следюущих обновлениях:

  • Имплементация встраиваемого INode для приложений
  • Лоу-левел ITransaction API интерфейс для стандартных транзакций и транзакций с мультиподписями.
  • Миграция сиплволлета (упрощенного кошелька) в хай-левел API (а именно, INode и IWallet)
  • Мгновенные оповещения о транзакциях для встраиваемого INode

Версия 1.0.3. является важным рубежом на пути к стандартизации доступа различных компонентов сети Bytecoin. Данная версия также является необходимым требованием для Bytecoin GUI кошелька, который выходит в конце этой недели. (кошелёк вышел 9 апреля 2015)

У Bytecoin на данный момент есть две версии кошелька — Bytecoin Wallet с графическим интерфейсом и simplewallet. Эти кошельки сильно различаются, так как simplewallet не предоставляет возможности проведения транзакции в реальном времени и отображает только маленькую часть информации, которая передается в Bytecoin Wallet. Однако, оба кошелька осуществляют свою работу благодаря двум High-Level API: INode и Iwallet. Это позволяет уверенно унифицировать исходный код криптовалюты и улучшить эффективность процесса разработки.

Более важно, что обновленный High-Level API предоставляет сторонним разработчикам доступ ко всем деталям Bytecoin. В данный момент любой разработчик, желающий создать собственный кошелек, имеет все необходимые инструменты для его создания.

Команда разработки Bytecoin искренне верит в то, что все сторонние разработчики должны находиться на едином уровне понимания бизнеса, не углубляясь в технологические сложности. Bytecoin High-Level API (а именно, интерфейсы IWallet и INode) позволяют добиться этого. Гораздо проще оперировать изнутри C++ приложения, нежели из классического Bytecoind и Simplewallet REST API.

Вышеописанные API дают доступ ко всем основным «фичам» Bytecoin в удобном и понятном виде. К примеру, вам не нужно заботиться о наличии simplewallet в качестве текущего фонового процесса для того, чтобы заработал GUI Wallet. Бизнес-разработка может быть сфокусирована на юзабилити (пользовательском опыте), позволяя запустить Iwallet «из коробки». А в случае необходимости более высокого уровня контроля протокола CryptoNote, вы можете использовать Low-Level ITransaction интерфейс вместо High-Level IWallet.

INode

Базовые основы сети Байткоин

Байткоин зависим от p2p распределенной сети, базовым звеном которого является node (узел). Самым общим видом ноды в сети Bytecoin является Bytecoin Reference Client daemon (демон bytecoind).

Всего существует два основных типа узлов (нод):
Сид (seed) — узел, позволяющий входящие соединения.
Пир (peer) — узел, который не позволяет принимать входящие соединения (к примеру, если пользователь изберет его сам, или таковыми будут требования файрволла).

INode и Bytecoin network node

На текущий момент существует две имплементации Bytecoin нод:

  • Стандартная консоль bytecoind (демон), позволяющая использовать p2p протокол и предоставляющая RPC интерфейс для внешнего доступа.
  • INode, являющаяся API библиотекой, позволяющей любому С++ приложению участвовать в p2p сети Bytecoin. Любое приложение, использующее INode API библиотеку не отличимо от других узлов сети.

Рефакторинг демона Bytecoin, анонсированный в перспективном плане подразумевает, помимо остальных улучшений, миграцию демона в INode библиотеку. Это сдалано нами для унификации технологического ядра Bytecoin и позволит любым сторонним разработчикам легко получить доступ ко всем деталям (фичам) сети. Выпущенное в итоге приложение, каковой бы не являлась его цель, будет обладать полностью работоспособной нодой Bytecoin. Более того, библиотека INode более эффективна, нежели существующий исходник bytecoind.

INode — это единый интерфейс, имеющий две имплементации: proxying INode (прокси) и in-process INode (встроенная).

  • Прокси INode перенаправляет все запросы к другому узлу (к примеру к вашему локальному bytecoind или какому-либо иному удаленному демону).
  • Встроенный INode является автономной узловой сетью, которая умеет все то же, что и стандартный демон. Он называется «встроенным» так как работает внутри другого приложения, требующего доступ к сети Bytecoin.

В предыдущем релизе был доступен лишь proxying INode. С приходом встроенного варианта (точнее, встраиваемого), INode становится более гибким. К примеру, если у вас работает локальный демон, приложение, использующее INode, выберет прокси-имплементацию и подсоединится к локальному bytecoind вместо запуска встраиваемого.

Bytecoin Wallet и ITransaction

В то время как INode способен взаимодействовать с блоками, он не может работать с информацией о счетах пользователей или создавать транзакции. Однако, для этого существуют специальные приложения, такие как валлеты (wallet — кошелек).

Команда Bytecoin дала возможность различного уровня доступа к ядру CryptoNote, с помощью двух интерфейсов:

  • IWallet — оперирует на уровне бизнес-логики. Он будет полезным если вам просто необходимо осуществлять транзации (отправка, прием), без запросов к деталям ядра протокола CryptoNote. Если вам необходимо передать деньги с помощью IWallet, то все что нужно — знать адрес пользователя, определить количество передаваемых средств, и выбрать уровень смешивания. IWallet сделает всю сложную работу за вас, автоматически выбрав инпуты, создав, утвердив, подписав и отправив транзацию.
  • ITransaction — Low-Level интерфейс, который дает полный доступ к транзакционному движку CryptoNote. Он спроектирован для приложений, которые требуют жесткого контроля за процессом создания транзакций. К примеру, ITransaction позволяет выбрать конкретные инпуты, а также имеет раздельные методы для подписания и отправки транзакции. Он также предоставляет доступ к функционалу мультиподписей.

Оба API-интерфейса способны делать одно и то же, но с различным уровнем детализации. Именно поэтому IWallet принадлежит к High-Level API, а ITransaction к Low-Level.

Оба вновь изданных кошелька — Simplewallet и Bytecoin Wallet — имеют в своем ядре Iwallet. Также, как интерфейс INode выделяется за счет лучшей работы, чем стандартный bytecoind, IWallet является более быстрой версией стандартного исходного кода simplewallet. Начиная с версии 1.0.3 simplewallet мигрировала в данный интерфейс, что сократило время, необходимое для передачи отдельно взятого блока на 20%.

Чтобы быть более точным, новый Bytecoin simplewallet является базовой программной консолью, которая использует IWallet и прокси-INode. С другой стороны, Bytecoin GUI Wallet использует IWallet и встраиваемый INode (который автоматически протекает как прокси-процесс в случае, если вы ранее уже запустили bytecoind).

Команда разработки Bytecoin ожидает, что большая часть приложений выберет IWallet, в то время как ITransaction останется для тех, кому потребуется особая настройка транзакций. Подобные приложения обычно обладают своей особой логикой создания транзакций и различными сложными модулями. ITransaction позволяет разделить процесс перевода, согласно нуждам архитектуры [кода приложения].

Более того, ITransaction также позволяет получить доступ к API мультиподписей, которые в свою очередь дают возможность создания blockchain escrow сервисов (доверительные счета) и foundation кошельков (кошельки организаций). Мультиподписи Bytecoin принадлежат схеме M-of-N. Подробнее про мультиподписи будет в одном из следующих постов.

Заключение

API позволяет приложениям легко взаимодействовать с криптовалютой, без затруднительной разработки и исследований. Такие приложения смогут сфокусироваться на маркетинге своих продуктов, в то время как вся сложная работа по интеграции с финансовой системой Bytecoin будет сделана надежными интерфейсами.


Bytecoin Reference ClientThe classical Bytecoin software that includes command-line daemon and simplewallet.

Windows 64-bit
OS X
Linux
Source code

Instructions


Bytecoin WalletAn elegant graphic wallet that provides all Bytecoin features in one intuitive interface.

Windows 64-bit
Windows 32-bit
OS X (.dmg)
Linux (.deb)
Linux (.rpm)

Instructions
Download older versions


Bytecoin RPC WalletWilling to accept Bytecoin? Check out robust daemonized console RPC wallet designed for e-commerce projects.

Windows 64-bit
OS X
Linux
Source code

Instructions