Криптовалюта 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