В ходе переговоров с нашими клиентами в течение прошлого года стало ясно, что для создания и поставки производственного программного обеспечения основные шлюзы API BigchainDB и модели данных должны будут развиться и стабилизироваться. Это привело к тому, что в конце 2016 года мы запланировали выпуск BigchainDB версии 1.0 на лето 2017 года. Мы выбрали тему Мои данные в безопасности и обратную совместимость. С тех пор мы развернули BigchainDB для тестовой и производственной сети IPDB, очистили и улучшили наши HTTP и WebSocket API, добавили поддержку дополнительной серверной части базы данных (MongoDB) и завершили основные усилия по обеспечению работоспособности системы. безопасность и правильность.

Тем более, что сегодня мы с гордостью объявляем о важной вехе в развитии BigchainDB - выпуске версии 1.0. Он поставляется с новыми функциями, улучшениями, исправлениями и обратной совместимостью. Среди прочего, его новая функциональность включает запросы ресурсов и драйвер JavaScript.

Давайте посмотрим.

Запрос активов

В BigchainDB версии 0.8 мы добавили поддержку делимых активов, структуры данных общего назначения для случаев использования блокчейна. В момент выпуска пользователь может установить делимость актива, а затем распределить его с помощью крипто-условий. Все последующие транзакции, порожденные событием выдачи, образуют направленный ациклический граф, который защищен от двойного расходования федеративным консенсусом BigchainDB. До сих пор активы были напрямую встроены в транзакции BigchainDB. В версии 1.0 мы разделили ресурсы и транзакции на отдельные таблицы базы данных, адресовав их содержимое скрытым образом, чтобы обеспечить защиту от несанкционированного доступа.

Используя мощный текстовый поиск MongoDB, мы представляем новую конечную точку BigchainDB /assets?search=<text search>. Это не только позволит нашим пользователям выполнять запросы для поиска актива по его имени, но также сопоставлять и сортировать несколько различных активов, искать фразы, содержащиеся в определениях активов, и исключать активы, содержащие определенные термины.

Драйвер JavaScript

До сих пор мы официально поддерживали Python в качестве языка драйверов для взаимодействия с сервером BigchainDB. В этом выпуске мы добавляем JavaScript. Будучи родным языком WWW, он служил миру в качестве мощной платформы для обмена информацией и вскоре передачи активов на основе блокчейна.

Мы запланировали запрос ресурсов и драйвер JavaScript изначально, когда они нам сами понадобились для реализации Децентрализованного обмена данными для обмена данными об автономных транспортных средствах для исследовательского института Toyota. Сочетание его возможностей хранить и запрашивать метаданные из BigchainDB / IPDB непосредственно из браузера с web3.js для обработки платежей в Ethereum и ipfs.js от Protocol Labs для хранения мультимедийных блобов на IPFS / Filecoin создает мощный набор инструментов для недавно появившийся бессерверный стек. Платформа, на которой децентрализованные приложения могут работать исключительно на устройствах пользователей посредством координации блокчейна. Создав прототип децентрализованного обмена данными без сервера, мы быстро осознали захватывающий потенциал обеих функций и решили сделать их незамедлительным основным предложением BigchainDB. Теперь, когда установлен набор инструментов для Web 3.0, мы очень рады видеть создание следующих Твиттеров, Netflix и Google.

Драйвер JavaScript BigchainDB реализует запросы ресурсов, и его можно найти на GitHub, npm и предварительно установить на unpkg.com.

Правильность и безопасность

Еще одна крупная инициатива, которую мы начали в начале года, - это поручение обеспечить безопасное хранение данных наших пользователей. Все второстепенные выпуски этого года содержат частичные исправления в этом направлении. Помимо предположений о внутренней корректности, которые помогли нам лучше сотрудничать по этому вопросу, в версии 1.0 мы продолжаем поставлять критические обновления и тесты на уровне системы для консенсуса и репликации BigchainDB, чтобы гарантировать согласованность и достоверность данных. Важная веха была достигнута несколько недель назад, когда мы опубликовали пост Что такое действительная транзакция в BigchainDB? ».

После версии 1.0 мы планируем усилить эту инициативу еще большим количеством рук, чтобы сделать ядро ​​BigchainDB более безопасным, децентрализованным и масштабируемым.

Обратная совместимость и критические изменения

Все последующие выпуски сервера BigchainDB, увеличивающие его минорную версию или версию с исправлениями, с этого момента будут вносить только обратно совместимые изменения в модель данных BigchainDB, API HTTP и WebSocket в соответствии с семантическим управлением версиями.

Поскольку мы увидели, что повышение версии до 1.0 является нашим последним шансом исправить неприятности, мы добавили несколько критических изменений в 1.0. Эти изменения включают исправления согласованности и безопасности, а также обновление до последней версии криптографических условий Interledger. Чтобы наши пользователи могли эффективно обновлять свои приложения и драйверы, мы опубликовали руководства по обновлению для сервера BigchainDB и Драйвер BigchainDB JavaScript вместе с выпуском.

Развертывание межпланетной базы данных

BigchainDB помог создать Фонд межпланетных баз данных (IPDB), независимую некоммерческую организацию, которая будет использовать программное обеспечение BigchainDB в качестве общедоступной базы данных блокчейнов. С момента выпуска версии 0.10 BigchainDB работает с IPDB для защиты и автоматизации развертывания IPDB, создания портала для разработчиков IPDB и запуска тестовой сети IPDB. На данный момент в тестовой сети IPDB в рамках закрытого бета-тестирования создано 106 учетных записей. К концу лета или началу осени IPDB откроет тестовую сеть для широкой публики.

Прочие изменения

Конечная точка быстрого / вывода

Имея каждый узел в кластере BigchainDB, возвращающий выходные данные на основе результатов их собственных блоков, мы смогли значительно уменьшить задержку BigchainDB при запросе выходных данных. Основываясь на наших предыдущих рекомендациях по безопасности, это не меняет текущих предположений о взаимодействии драйвера и сервера. Чтобы противодействовать византийскому поведению узлов, мы продолжаем рекомендовать драйверам запрашивать достаточное количество узлов, чтобы определить, что думает большинство узлов.

Совместное использование частных данных в публичных реестрах

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

После версии 1.0

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

Мы очень хотим начать строительство и надеемся, что вы так же взволнованы, как и мы, грядущим. Если у вас есть вопросы или отзывы относительно этого сообщения в блоге, не стесняйтесь обращаться по адресу [email protected].

Чтобы получить подробный обзор всех изменений, внесенных в код, ознакомьтесь с нашими журналами изменений для: Сервер BigchainDB, Драйвер Python или Драйвер JavaScript. И, как всегда, не забудьте обновить:

pip install --upgrade bigchaindb bigchaindb_driver

Обязательно следите за этим блогом, чтобы быть в курсе будущих выпусков и из первых рук узнать о дополнениях к системе, о том, что изменилось и почему. Наконец, если вы разработчик, использующий BigchainDB, мы хотим услышать ваше мнение. Отправьте нам письмо по адресу [email protected] и расскажите нам свою историю.