Перейти к содержимому

antolmach's блог

  • записей
    9
  • комментариев
    56
  • просмотров
    20 110

Что у Bytecoin (BCN) под капотом? (API криптовалюты)

antolmach

4 681 просмотр

Перевод. Оригинальный текст: Bytecoin.Under the Hood

 

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

 

Ниже будет объяснено, что происходит "под капотом" в 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 будет сделана надежными интерфейсами.



4 комментария


Рекомендуемые комментарии

Хорошо, что я наткнулся на этой странице очень интересной

Поделиться комментарием


Ссылка на комментарий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×