BigchainDB
Блокчейн
BigchainDB — это распределенная база данных для «больших данных», в которой были реализованы некоторые характеристики блокчейна. Она способна выполнять миллион операций записи в секунду и хранить петабайты данных с малым временем доступа.
В официальном документе BigchainDB сказано, что «система разрешений БД позволяет создавать самые разные конфигурации: от частных корпоративных БД до открытых БД на блокчейне. BigchainDB дополняет децентрализованные вычислительные платформы, такие как Эфириум, и децентрализованные файловые системы, такие как IPFS (InterPlanetary File System)».
Крупные БД масштабируются линейно, т. е. чем больше узлов вы добавляете, тем выше производительность системы, но Биткойн хорошо масштабируется только до уровня в 8-10 тысяч узлов. В BigchainDB для масштабирования репликация используется эффективнее: данные распределены по сети в трех или немногим более копиях.
«В распределенных базах данных используются свои алгоритмы консенсуса, обеспечивающие правильный порядок обработки транзакций и согласованность всех копий, — сказал в интервью IBTimes Брюс Пон (Bruce Pon), один из основателей BigchainDB. — Если одна из копий данных становится недоступной, данные быстро реплицируются на другой узел. Мы также используем шардинг для экономии места. В конечном итоге ограничением для нас стал ввод-вывод: достигнуть более высокой производительности нам помешала пропускная способность сети в 10 Гбит/с…».
Поверх распределенной базы данных в BigchainDB реализована федерация узлов, каждый участник которой голосует по каждой транзакции, и для утверждения транзакция должна набрать определенное количество голосов. По словам Пона, типичная федеративная модель может включать от 5 до 60 проверяющих узлов.
«Другая инновация в BigchainDB — это то, что мы называем конвейером, на который мы «выкладываем» все транзакции одну за другой, а затем подтверждаем их вместе. Это позволяет выполнять запись так быстро, как вы только можете, и подтверждать транзакции впоследствии. Если в конвейере попадается плохая транзакция, ее можно извлечь из блока и обработать отдельно… В Биткойне проверка выполняется при использовании БД, у нас эти операции разделены по времени».
Большие данные
Проект BigchainDB вырос из платформы Ascribe для управления правами на цифровые произведения искусства, когда у ее разработчиков начались проблемы с масштабируемостью. Для решения этих проблем и была создана BigchainDB. При подготовке проекта разработчики провели полный анализ примерно 100 имеющихся БД для больших данных и в итоге взяли за основу RethinkDB — сравнительно малоизвестную, но очень мощную БД.
«Если Cassandra, MongoDB, Oracle или MySQL захотят создать БД на блокчейне, это вполне возможно — мы можем применить подход, который использовали для создания BigchainDB поверх RethinkDB. При благоприятном развитии событий в ближайшие 5 лет появится широкий выбор баз данных на блокчейнах, что упростит и ускорит распространение блокчейнов в корпоративной среде».
Как утверждают представители BigchainDB, со дня выпуска официального документа они получили сотни запросов. «Похоже, что мы нашли свою нишу в блокчейн-экосистеме, — заметил Пон. — Мы хорошо ладим с Ethereum, Chain, Eris и другими подобными платформами».
«BigchainDB устраняет необходимость хранить данные в Эфириуме, что неэффективно и требует написания дополнительного кода для запроса данных. Гораздо эффективнее развернуть уровень смарт-контрактов Эфириума в их виртуальной машине и использовать BigchainDB для хранения эфира, токенов, номеров товаров или фишек казино — всего, что бы вы ни захотели отслеживать в своей децентрализованной системе».