1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/hyperledger-burrow

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CHANGELOG.md 49 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 01:16 542ab4e

Hyperledger Burrow (https://github.com/hyperledger/burrow) Changelog

[0.34.4] - 2021-07-23

Changed

  • [JS] Make deploy и deployContract принимать аргумент deps, состоящий из параметров развёртывания и объекта библиотеки. Объект библиотеки упрощает передачу идентичного объекта с адресами часто используемых библиотек под их каноническими именами.

[0.34.3] - 2021-07-19

Исправлено

  • [JS] Исправлена орфографическая ошибка в solts, добавлен объект контракта в контракт.

Добавлено

  • [JS] Добавлена опция для генерации кода build.ts, чтобы не завершать работу при предупреждениях компилятора Solidity, что теперь является значением по умолчанию. Предупреждения по-прежнему регистрируются в stderr.

[0.34.2] - 2021-07-09

Исправлено

  • [Build] Добавлены изменения версии 0.34.1!

[0.34.1] - 2021-07-09

Исправлено

  • [JS] Функция сборки не проглатывает ошибки без formattedMessage, перед сборкой перейдите в каталог basepath, чтобы импорт solc работал должным образом.

[0.34.0] - 2021-05-28

Изменено

  • [JS] Интерфейс провайдера больше не зависит от типов GRPC для улучшения совместимости между версиями Burrow.js и простоты расширения.
  • [JS] Используйте интерфейс с не уникальным маркером, чтобы указать отмену потока в редукторе событий (опять же для совместимости между версиями и расширяемости).
  • [Go] Обновление до Go 1.16.

Исправлено

  • [JS] Исправление проблемы с генерацией кода, который молча проглатывал коллизии файлов abi (переименованных из .bin в .abi), и использование иерархической структуры каталогов для дальнейшего снижения вероятности коллизий.
  • [JS] Зависите только от @ethersproject/abi, а не от всего зонтичного проекта.

Добавленное

  • [JS] Включайте deployedBycode и опционально отправляйте ABI в хранилище метаданных контрактов Burrow при развёртывании.

[0.33.1] - 2021-05-24

Исправлено

  • [JS] Возвращайте bytesNN как Buffer для соответствия типизации.

Добавленное

  • [JS] Встроенные исходные файлы и карты источников.

[0.33.0] - 2021-05-24

Изменённое

  • [JS] Изменён интерфейс Burrow и переименован объект клиента Burrow в Client (объединение функций, необходимых для поддержки solts).

Исправлено

  • [JS] Исправлено RLP-кодирование лишних ведущих нулей в uint64 (спасибо Матье Вашону!).
  • [JS] Улучшена совместимость с устаревшими типами байтов Solidity и соглашениями о заполнении.
  • [Events] Исправлен поток событий Burrow, неправильно переходящий в потоковый режим для диапазонов блоков, доступных в состоянии (когда последний блок является пустым блоком — поэтому он не сохраняется в состоянии).

Добавленное

  • [JS] Поддержка генерации кода Solidity в Typescript (слияние с solts) — это предоставляет вспомогательные функции (build.ts, api.ts) для компиляции файлов Solidity в соответствующие файлы .abi.ts, которые включают типы для функций, событий, ABI и байт-кода EVM, и включает привязки в Burrow JS для развёртывания и взаимодействия с контрактами через Typescript/Javascript со строгими статическими типами.
  • [JS] Улучшено взаимодействие с событиями, которые теперь можно запрашивать в любом диапазоне и со строгими типами, см. функции listenerFor, reduceEvents, readEvents и iterateEvents.

[0.32.1] - 2021-05-15

Изменённое

  • [Execution] CallErrors больше не выдают очень длинные, скорее бессмысленные (поскольку в настоящее время нет инструментов для их интерпретации) следы вызовов EVM.
  • [JS] Возврат массивов байтов в виде буферов после декодирования (возвращать только типы byteNN фиксированной ширины в виде шестнадцатеричных строк).

[0.32.0] - 2021-05-14

Изменённое

  • [JS] Значительный рефакторинг/переписывание Burrow.js на идиоматический Typescript, включая некоторые критические изменения в API.
  • [JS] Переход на ethers.js для кодирования ABI.

Исправлено

Добавленное

  • [Tendermint] Добавлена поддержка передачи параметров узла в Tendermint — например, пользовательские реакторы (спасибо @nmanchovski!).
  • [JS] Исторические события теперь можно запрашивать через API.
  • [JS] Развёртывание контрактов теперь будет включать ABI через метаданные контрактов, так что можно использовать реестр ABI Burrow. ТxStack EventStream потребитель отказывается от событий из цепочки дампа/восстановления, потому что им не хватает конвертов tx (поскольку они предназначены для того, чтобы формат дампа был минимальным).

Добавлено:

  • [Genesis] Исправление нестабильности хеша, вызванной случайным удалением omitempty из AppHash в генезисе.

[0.31.1] — 2020-03-19

Изменено:

  • [Repo] основная ветка заменяет master в соответствии с рекомендациями Hyperledger TSC.

Исправлено:

  • [Docker] Убедитесь, что тестовая сеть по умолчанию работает при запуске образов докеров.
  • [Vent] Используйте целочисленные типы базы данных подходящего размера для целочисленных типов EVM (например, numeric для uint64 и больше).
  • [Vent] Потребитель блоков Ethereum теперь правильно считывает до конечной высоты блока пакетного конца включительно.
  • [Web3] Обрабатывайте целочисленный ChainID для web3 последовательно; возвращайте шестнадцатеричное числовое значение из RPC web3, также разрешите переопределение производного от генезиса-хэша ChainID, чтобы можно было подключиться к Burrow через metamask.

Добавлено:

  • [Build] Сборка dev docker и JS релизов путём принудительной отправки в ветку prerelease.
  • [Vent] Предоставьте доступ к BlockConsumerConfig для настройки характеристик отката и чтения.
  • [Vent] Добавьте тест непрерывности Vent на стороне блоков (чтобы дважды проверить доставку событий ровно один раз).

[0.31.0] — 2020-03-10

Изменено:

  • [Tendermint] Обновлён до Tendermint 0.34.3.
  • [Docker] Теперь образ будет запускать тестовую сеть по умолчанию.

Добавлено:

  • [Vent] Добавлена поддержка создания таблиц Vent SQL из цепочек Ethereum web3 JSONRPC (полезно для оракулов/государственных каналов с уровнем 1).
  • [Vent] Статус добавлен в конечную точку проверки работоспособности на Vent.
  • [Natives] Реализован ecrecover с использованием btcec (пересмотрена обработка ключей).
  • [Engine] Реализована кросс-движковая диспетчеризация.
  • [WASM] Реализованы кросс-движковые вызовы и вызовы прекомпиляций.
  • [WASM] Значительно расширена поддержка eWASM и реализованы функции.
  • [WASM] Добавлены функции печати отладки.
  • [WASM] Реализованы функции CREATE, GETTXGASPRICE, GETBLOCKDIFFICULTY, SELFDESTRUCT eWASM (спасибо Yoongbok Lee!).
  • [WASM/JS] Библиотека JS поддерживает развёртывание кода WASM.
  • [Deploy] Можно указать WASM в playbook.
  • [EVM] Реализованы CHAINID и DIFFICULTY опкоды.
  • [Query] Грамматика запросов PEG теперь поддерживает операторы Not («NOT») и NotEqual («!»=»).

Исправленное:

  • [Deploy] Исправлены ненадёжные параллельные тесты.
  • [EVM] Используется правильный опкод для create2 (спасибо Vitali Grabovski!).
  • [ABI] Проверка длины ввода перед декодированием (спасибо Tri-stone!).
  • [WASM] Обработка аргументов конструктора.
  • [RLP] Неправильное использование смещений для более длинных строк байтов.
  • [RLP] Использование минимального кодирования для префиксов длины (без ведущих нулей).
  • [Web3] Генерация правильного кодирующего хэша для RawTx (ChainID в дайджесте хэша, но не в полезной нагрузке).
  • [Web3] Генерируйте канонический странный шестнадцатеричный код Ethereum.
  • [State] Исправлена ​​проблема параллелизма чтения в RWTree (на котором основано состояние), устраняя необходимость в обходном пути блокировки CallSim.

Безопасность:

  • Обновлена эллиптическая зависимость JS до 6.5.3.
  • Обновлено lodash до 4.17.19.

[0.30.5] — 2020-07-09

Добавленное:

  • [Vent] Добавление флага BytesToHex в сопоставления полей проекции, который заставляет поля байтов (например, bytes32) полей солидности быть шестнадцатерично закодированными и сопоставленными столбцам varchar(64), а не столбцам bytea/blob в postgres/sqlite.

[0.30.4] — 2020-04-05

Добавлен:

  • [Build] Добавлен график Helm.
  • [Состояние] Учётная запись теперь имеет поле EVMOpcodeBitset для поддержки предстоящих исправлений EVM.

Исправленное:

  • [JS] Выпуск Github действий библиотеки JS.

[0.30.3] — 2020-04-05

Добавили:

  • [CLI] Сделанная ранее внутренняя компиляция приспособлений Solidity Go стала доступна через «burrow compile».
  • [TS] Реализация интерфейса клиента TS по умолчанию.

[0.30.2] — 2020-03-13

Исправленное:

  • [RPC] Добавлен мьютекс для callSim и callCode.

[0.30.1] — 2020-03-06

Исправленное:

  • [CLI/Tx] Формулировка снятия средств теперь указывает сумму.

[0.30.0] — 2020-03-05

Изменённое:

  • [JS] Частичная переработка клиентского API на машинописном языке.

Исправленное:

  • [Состояние] Блокчейн теперь фиксирует начальный AppHash, чтобы избежать паники IAVL.

[0.29.8] — 2020-02-11

Исправленное:

[0.29.7] — 2020-01-27

Исправленное:

  • [Сборка] Обновления процесса сборки CI. Какие изменения были внесены в версии [0.27.0], [0.26.2], [0.26.1], [0.26.0] и [0.25.1]:

[0.27.0] — 2019-06-23:

  • Добавлена поддержка WASM-контрактов, написанных на Solidity и скомпилированных с помощью solang.

[0.26.2] — 2019-06-19:

  • Исправлена ошибка, из-за которой LastBlockTime устанавливался правильно только после получения первого блока после перезапуска узла. Это могло привести к недетерминизму в EVM через TIMESTAMP-код операции, который использует LastBlockTime, полученный из заголовка блока Tendermint (из их реализации BFT-времени).

[0.26.1] — 2019-06-16:

  • Изменён интерфейс командной строки: «burrow dump» переименован в «burrow dump remote».
  • По умолчанию Burrow больше не создаёт пустые блоки в конце раунда, хотя по умолчанию делает это каждые 5 минут. Можно установить CreateEmptyBlocks на «never», чтобы не создавать блоки, если нет транзакций, или на «always», чтобы генерировать блоки даже при отсутствии транзакций.
  • Состояние Burrow не сохраняет пустые блоки в хранилище событий выполнения, даже когда Tendermint их создаёт.
  • Сборка: «make install_burrow» теперь просто «make install».
  • Исправлено несколько ошибок: всегда считывать исключение TxExecution в Burrow deploy, чтобы избежать паники позже; устанавливать хэш транзакции восстановления на ненулевое значение (sha256 исходного ChainID + Height); включать соответствующие таблицы в базе данных Vent с помощью параметров --txs и --blocks; предотвращать создание пустых блоков (кроме случаев, когда это необходимо для доказательства) или когда истекает интервал (если он установлен).
  • Добавлен новый вариант команды burrow dump, которая производит дамп непосредственно из совместимого каталога Burrow, а не через GRPC. Если вы сбрасываете/восстанавливаете между несовместимыми версиями состояния, используйте burrow dump remote.

[0.26.0] — 2019-06-14:

  • В таблицах SQL хранится идентификатор цепочки.
  • Изменены аргументы командной строки.
  • Отключён стандартный индексёр транзакций Tendermint, для которого у нас нет пользы, но который создаёт дополнительную нагрузку на БД.
  • Теперь работают параметры CreateEmptyBlocks и CreateEmptyBlocksInterval.
  • Пустые блоки больше не сохраняются.
  • Генезисный документ больше не сохраняется в каждом блоке.
  • Транзакции TxExecutions сохраняются как одна запись на блок, а не одна на событие.
  • Добавлена возможность восстановления таблиц из журнала Vent с помощью новой команды vent restore.

[0.25.1] — 2019-05-03:

  • Конфигурация: адрес прослушивания разделён на хост и порт для упрощения анализа в диаграммах Helm.
  • Интерфейс командной строки: восстановление Burrow теперь всегда завершается ошибкой, если состояние обнаружено, но можно сделать его бесшумным.
  • Интерфейс командной строки: по умолчанию время ожидания клиента дампа отсутствует.
  • Развёртывание: уровень ведения журнала по умолчанию снижен до трассировки вместо информации.
  • Сборка: перешли на модули Go. keyStore wasn't built when using the remote keys client.

Deploy: исправить разыменование nil в пути ошибки запроса, проверить аргументы конструктора в BuildJob.

[0.25.0] — 2019-04-05

Изменённое

  • Tendermint: обновление до версии 0.31.2.
  • IAVL: обновление до версии 0.12.2.
  • Config: перемещение Tendermint.TimeoutFactor в Execution.TimeoutFactor (и повторное использование для режима NoConsensus).
  • Kernel: рефакторинг и изменение различных экспортированных методов.

Добавленное

  • CLI: введение burrow configure — pool для генерации нескольких конфигураций валидатора, подходящих для работы на одной (или многих) машинах.
  • CLI: теперь burrow deploy может запускать несколько файлов burrow deploy (так называемые playbooks) и запускать их параллельно.
  • Consensus: теперь можно запустить Burrow без Tendermint в режиме «NoConsensus», установив Tendermint.Enabled = false для более быстрого локального тестирования. Execution.TimeoutFactor можно использовать для управления тем, как часто Burrow фиксирует данные (и используется).

Исправленное

  • Execution: исправлено переполнение uint64 (при вычитании комиссии из баланса), не защищённое от CallContext.
  • Тесты: различные проблемы параллелизма исправлены в тестах, а тесты выполнения распараллелены.

[0.24.6] — 2019-03-19

Изменённое

  • RPC: «blocks» в info RPC теперь перечисляет блоки в порядке возрастания, а не убывания высоты.

Добавленное

  • CLI: введено burrow configure — pool для создания нескольких конфигураций валидаторов, подходящих для запуска на одном или нескольких компьютерах.

Исправленное

  • Metrics: исправление статистики гистограммы путём накопления подсчётов.

[0.24.5] — 2019-03-14

Изменённое

  • Консенсус: таймауты Tendermint настраиваются с помощью коэффициента с плавающей запятой по сравнению со значениями по умолчанию и по умолчанию изменяются на 0,33 значения по умолчанию Tendermint для небольших сетей.
  • Транзакционный модуль: жёстко заданный тайм-аут удалён из транзакционного модуля и добавлен в TxEnvelopeParam для указанного клиентом серверного тайм-аута (в случае более длительного времени подтверждения, например, когда некоторые валидаторы недоступны).
  • Ведение журнала: конфигурация ExcludeTrace инвертирована в Trace и теперь по умолчанию имеет значение false (т. е. ведение журнала трассировки/отладки отключено). По умолчанию вывод журнала теперь исключает ведение журнала Tendermint (и поэтому гораздо менее разговорчив).

Добавленное

  • Logging: добавление высоты ко всем сообщениям журнала.
  • RPC: добавление LastBlockCommitDuration к SyncInfo.

Исправленное

  • Metrics: замена использования сводных показателей при использовании гистограмм.

[0.24.4] — 2019-03-08

Изменённое

  • EVM: принятие []byte nonce вместо применения txs.Tx.TxHash().
  • Crypto: предоставление доступа к помощнику SequenceNonce, позволяющему пользователям библиотеки использовать адреса на основе порядковых номеров для вновь созданных контрактов.

[0.24.3] — 2019-03-06

Исправленное

  • Состояние: избегание трассировок стека, которые могут зависеть от пути кода или быть недетерминированными, от помещения в TxExecutions и, следовательно, в merkle state, где они могут привести к нарушению консенсуса.
  • Состояние: исправлен итератор KVCache для использования интерфейса low, high, как в DB, исправляя CacheDB для использования в Replay.

Добавленное

  • Logging: включение высоты в различные сообщения журнала выполнения.
  • Transactor: теперь предоставляет SyncInfo в сообщении об ошибке, когда происходит тайм-аут BroadcastTxSync.

[0.24.2] — 2019-02-28

Изменённое

  • Genesis: использование HexBytes для Genesis AppHash.

Исправленное

  • Vent: остановка Vent от проглатывания ошибок (например, ошибок потоковой передачи GRPC).
  • Консенсус: обновлён до исправленной версии Tendermint, которая не загружает зависимость go-ethereum.
  • CLI: удаление повторяющегося флага -t из burrow configure.

Добавленное

  • Ядро: добавлено сообщение о запуске и завершении работы, включая версию, адрес ключа и другую полезную метаинформацию.
  • EVM: попытка предоставить причину REVERT, где это возможно.
  • Vent: --abi и --spec можно указывать несколько раз, чтобы обеспечить поиск по нескольким путям.

[0.24.1] — 2019-02-28

Изменённое

  • ABI: abi.EncodeFunctionCall и AbiSpec.Pack теперь принимают вариативный тип ...interface{} для аргументов функции, а не []string.

Исправленное

  • Развёртывание: двоичные файлы теперь записываются атомарно, чтобы предотвратить проблему с моментальным усечением библиотек зависимостей при развёртывании параллельно.

Добавленное

  • ABI: DecodeFunctionReturn повторно открыт (ранее Packer, затем packer в 0.24.0), чтобы сделать API развёртывания симметричным.

[0.24.0] — 2019-02-26

Изменённое

  • EVM: использование... TxHash для обеспечения предсказуемой последовательности номеров при создании учётных записей (позволяет механизму предложений агрегировать транзакции и выполнять их в BatchTx) - запрос на вытягивание.

  • [Состояние] Введено понятие MutableForest и изменено расположение состояния на потоковую модель, что, помимо прочего, должно предотвратить увеличение размера сообщений GRPC для больших транзакций.

  • [Консенсус] Обновлён Tendermint до версии v0.30.1.

  • [Состояние] Обновлён IAVL до версии v0.12.1.

  • [EVM] Тесты интеграции обновлены до Solidity 0.5.4.

  • [Состояние] Всё состояние теперь хранится в дереве Меркла через MutableForest.

  • [Состояние] Полная история состояний валидатора хранится в лесу.

  • [Vent] Обновлено определение формата конфигурации спецификации таблицы EventSpec.

  • [Vent] Добавлена поддержка управления триггерами Postgres.

Исправлено:

  • [Транзакционный модуль] Уменьшена нагрузка на подписку TxExecution.

  • [Транзакционный модуль] Удалён чрезмерный тайм-аут отладки подписки.

  • [Состояние] Исправлена проблема с чекпоинтингом, которая могла привести к расхождению AppHash при перезапуске узлов — запрос на вытягивание.

  • [EVM] Реализован опкод BLOCKHASH.

  • [EVM] Использован правильный callee STATICCALL для исправления межконтрактных запросов.

  • [Консенсус] Защищён от переполнения общей мощности валидаторов (ограниченной Tendermint).

Добавлено:

  • [EVM] Реализован опкод CREATE2.

  • [EVM] Реализован опкод EXTCODEHASH.

  • [Учётные записи] Добавлен метод GetStats для запроса конечной точки.

  • [Настройка] Экспонирован AddrBookStrict из Tendermint.

  • [Развёртывание] Теперь burrow deploy печатает события, генерируемые во время транзакций.

  • [Развёртывание] burrow deploy может использовать имена ключей там, где используются адреса.

  • [Управление] Добавлено пороговое управление через механизм предложений, который позволяет сущностям с корневым разрешением предлагать и голосовать за пакеты транзакций, которые будут выполняться в работающей сети без возможности выполнения одним лицом.

  • [Управление] Добавлены командная строка и запрос самоанализа предложений, а также поддержка burrow deploy.

  • [Vent] Объединён Vent, наш слой проекции и отображения SQL, в репозиторий и двоичный файл Burrow через «burrow vent». См. Vent Readme.

  • [Состояние] Улучшено разделение чтения и записи с помощью структур данных RWTree и ImmutableForest.

  • [Состояние] Реализованы дамп/восстановление для переноса состояния между различными версиями Burrow или для сжатия выполнения цепочки (с доказательством) на новую цепочку.

[0.23.3] — 2018-12-19

Исправлено:

  • [Состояние] Поскольку хэш состояния не уникален (то есть если мы не делаем записи), сохраняя CommitID по AppHash, мы можем перезаписать более старый CommitID новым, что приведёт нас к загрузке неправильной версии дерева для перезаписи в случае загрузки из чекпоинта.

[0.23.2] — 2018-12-18

Горячий выпуск для 0.23.1

Исправлено:

  • [Состояние] Исправлена ошибка с чекпоинтом, из-за которой RWTree загружал бы своё readTree из одной версии ниже, чем следовало.

[0.23.1] — 2018-11-14

Исправлено:

  • [EVM] state/Cache больше не разрешает SetStorage для несуществующих аккаунтов.

  • [GRPC] GetAccount для неизвестного аккаунта больше не вызывает панику.

Добавленное:

  • [Docker] Добавлен бинарный файл solc 0.4.25 в контейнер Docker, чтобы у burrow deploy было всё необходимое для работы.

  • [Выполнение] паники от исполнителей захватываются и передаются в error sink TxExecution.

[0.23.0] — 2018-11-09

Изменённое:

  • [ABI] обеспечивает быстрый поиск событий по EventID.

  • [События] BlockExecution теперь включает полный заголовок блока Tendermint как объект protobuf, а не строку JSON.

  • [EVM] Ошибки вложенных вызовов теперь передаются в EventSink (например, TxExecution) в виде событий для лучшей трассировки и тестирования.

  • [SNative] Контракт разрешений возвращает набор флагов разрешений, а не результирующие разрешения из setBase, unsetBase и setGlobal.

  • [EVM] Ошибки передаются через интерфейс errors.Pusher для более надёжного захвата из памяти, стека и других мест.

  • [Управление] Критическое изменение структуры состояния из-за хранения управления в дереве (корневые хэши состояния не будут совпадать).

Исправленное:

  • [EVM] Проблема, когда значение не было передано, потому что состояние вызова виртуальной машины не синхронизировалось.

  • [EVM] Различные проблемы, когда ошибки проглатывались (в... Сервис может устанавливать передаваемое значение

Улучшения

  • Вывод «экспорта ключей норы» можно шаблонировать.

Исправления ошибок

  • Исправлена паника на пустых границах для блоков сервиса.

[0.19.0] — 2018-06-26

Это основной (предварительно 1.0.0) выпуск, который приносит обновления, улучшения безопасности, конфигурацию облака и конечные точки GRPC в Burrow.

Критические изменения

В дополнение к критическим изменениям, связанным с Tendermint (см. их журнал изменений):

  • Логика контрольных точек состояния изменилась, что привело к загрузке на основе блокчейна;
  • Формат события изменился по сравнению с rpc/V0, см. пакет execution/events/;
  • Формат ключей на диске изменился с monax-keys на более стандартные ключи burrow;
  • Был изменён формат адреса (Tendermint и мы последовали их примеру) — возможно преобразование, но проще регенерировать ключи.

Функции

  • Tendermint 0.21.0;
  • Реализованы коды операций EVM: REVERT, INVALID, SHL, SAR, SHR, RETURNDATACOPY, RETURNDATASIZE;
  • Добавлена настройка шаблонов с помощью burrow configure --config-template-in --config-out;
  • Добавлены шаблоны конфигурации для Kubernetes;
  • Интеграция monax-keys как внутренних (по умолчанию) или автономных сервисов ключей, генерация ключей доступна через интерфейс командной строки;
  • Использование GRPC для ключей;
  • Добавление GRPC-сервиса для Transactor и Events;
  • Сохранение ExecutionEvent по высоте и индексу в состоянии дерева Меркла;
  • Добавить исторический запрос за всё время с GetEvents;
  • Добавить потоковую службу GRPC для ExecutionEvents с языком запросов по тегам;
  • Добавить метаданные в ExecutionEvents;
  • Добавить BlockExplorer CLI для криминалистики;
  • Раскрыть причину REVERT;
  • Добавить конечную точку проверки работоспособности last_block_info в rpc/TM;

Улучшения

  • Реализация контрольных точек при сохранении состояния приложения и блокчейна в коммите — прерванный коммит откатывает Burrow до последнего блока, где он может наверстать упущенное с помощью Tendermint;
  • Поддержка отдельного дерева только для чтения в состоянии, чтобы длительные RPC-запросы не блокировали записи;
  • Улучшение безопасности состояния;
  • Улучшенный ввод учётной записи на стороне сервера;
  • Увеличение времени повторной подписки на rpc/V0 до 20 секунд;
  • Реорганизация интерфейса командной строки;
  • Улучшенная внутренняя сериализация;
  • Пересмотр и модульное исполнение логики.

Исправление ошибок

  • Исправить генерацию адресов из несоответствия байтов.

[0.18.1]

Этот второстепенный релиз включает в себя:

  • Введение параметра InputAccount для RPC/v0 для интеграции в JS-библиотеки;
  • Решение некоторых проблем с тестами RPC/tm, которые проглатывают тайм-ауты и не справляются с переупорядоченными событиями.

[0.18.0] — 2018-05-09

Это чрезвычайно большой релиз с точки зрения количества изменённых строк кода, направленный на решение нескольких лет технического долга. Несмотря на это, были предприняты усилия по максимальному сохранению внешних интерфейсов, и на этапе разработки произошёл длительный период стабилизации.

Основная часть работы заключалась в объединении предыдущих инструментов Monax, разбросанных по нескольким репозиториям, всего в два. Репозиторий Hyperledger Burrow и Bosmarmot (http://github.com/monax/bosmarmot). Теперь Burrow может генерировать цепочки (заменяя «monax chains make») с помощью «burrow spec» и «burrow configure». Наш инструмент развёртывания и тестирования контрактов EPM, наши библиотеки JavaScript, компиляторы и monax-ключи доступны в Bosmarmot (предыдущий инструмент в разделе «bos»). Ведётся работа по переносу monax-ключей в проект Burrow, и мы продолжим делать Burrow как можно более самодостаточным.

Функции

  • Существенная поддержка последней версии EVM и solidity 0.4.21+ (отсутствуют некоторые коды операций, которые будут добавлены в ближайшее время — см. известные проблемы);
  • Tendermint 0.18.0;
  • Всё подписание через соединение monax-keys KeyClient (подготовка к HSM и GPG на основе подписывающего демона);
  • Подписание на основе адреса (Burrow действует как делегат, когда вы отправляете transact, transactAndHold, send, sendAndHold и transactNameReg параметр, включая input_account (шестнадцатеричный адрес) вместо priv_key);
  • Последовательное подписание при использовании методов семейства transact (выше) — позволяет выполнять 100 транзакций в секунду с одним и тем же входным аккаунтом;
  • Создание генезиса, конфигурации и генерации ключей с помощью «burrow spec» и «burrow configure»;
  • Конфигурация ведения журнала на языке и текст/шаблон для вывода;
  • Улучшенное взаимодействие с пользователем и структура интерфейса командной строки (mow.cli);
  • Улучшенная конфигурация.

Внутренние улучшения

  • Рефакторинг выполнения и... Обеспечьте интерфейсы для исполнителя

  • Разделите EVM и состояние блокчейна, чтобы они работали как лучшая библиотека.

  • Реализуйте аварийное восстановление при выполнении TX.

  • Установите более строгие границы интерфейса и по умолчанию сделайте основные объекты неизменяемыми.

  • Замените повреждённый BlockCache универсальным StateCache, который не записывает напрямую в БД.

  • Все зависимости обновлены, особенно tendermint/IAVL 0.7.0.

  • Используйте Go dep вместо glide.

  • PubSub хаб событий с языком запросов.

  • Сильно оптимизированное логирование.

  • Опция профилирования сервера PPROF.

  • Дополнительные тесты во множестве пакетов, включая v0 RPC и тесты на параллелизм.

  • Для PrivValidator используйте Tendermint верификатор.

  • Для истории проекта используйте monax/relic.

  • В CI запустите интеграционные тесты bosmarmot.

  • Обновите документацию.

  • Множество улучшений в плане удобства сопровождения, именования и эстетики кода.

Исправления ошибок

  • Исправьте утечку памяти в BlockCache.
  • Исправьте использование CPU в BlockCache.
  • Исправить SIGNEXTEND для отрицательных чисел.
  • Устраните многочисленные паники на уровне выполнения.
  • Сделайте Transactor работоспособным во время перепроверки Tendermint.

Известные проблемы

  • Устаревшая документация — были предприняты некоторые усилия по обновлению документации, но в некоторых местах она устарела, помощь можно найти (и она будет приветствоваться) на канале Hyperledger Burrow Chat.
  • Отсутствует поддержка: RETURNDATACOPY и RETURNDATASIZE (скоро появится).
  • Отсутствует поддержка: INVALID (скоро появится).
  • Отсутствует поддержка: REVERT (скоро появится).

[0.17.1]

Незначительные изменения в файле сборки docker.

[0.17.0] — 2017-09-04

Это сервисный релиз с некоторыми значительными улучшениями совместимости с ethereum/solidity и новыми функциями логирования. Включает:

— Обновление до Tendermint v0.9.2. — Реализована динамическая память, предполагаемая байткодом EVM, созданным solidity, что устраняет различные проблемы. — Логирование и конфигурация — обеспечивает гибкий механизм настройки потоков и выходов логов, см. раздел «Логирование» в readme. Различные другие улучшения логирования. — Исправлен отказ от подписки на события. — Удалено модульное управление версиями. — Переименован suicide в selfdestruct. — Изменения SNative.

Известные проблемы:

— OPCODE SELFDESTRUCT вызывает панику при удалении аккаунта. Было выпущено исправление, но его отменили для изучения возможной регрессии.

[0.16.3] — 2017-04-25

Этот релиз добавляет временное исправление к методу Transact, так что он никогда не передаёт значение сгенерированным CallTx. Мы жёстко кодируем amount = fee, чтобы независимо от отправленной комиссии, значение не передавалось. Это устраняет ошибку недопустимого перехода, возникающую при передаче значения не подлежащим оплате функциям с более новыми версиями solidity. Делая это, мы можем решить некоторые проблемы пользователей v0 RPC без внесения критических изменений в API.

[0.16.2] — 2017-04-20

Этот выпуск завершает наше присоединение к проекту Hyperledger и обновляет пространство имён корневого пакета до github.com/hyperledger/burrow. Также включает исправление ошибки rpc/V0, позволяющее BroadcastTx принимать любые типы транзакций, и различные элементы внутренней очистки.

0.16.1 — 2017-04-04

Этот релиз был внутренним переименованием в «Burrow» с некоторой незначительной сопутствующей очисткой.

0.16.0 — 2017-03-01

Это консолидирующий релиз, который исправляет различные ошибки и улучшает элементы архитектуры платформы Monax для поддержки более быстрого выпуска.

Функции и улучшения (среди прочих):

— Обновление консенсусного движка до Tendermint v0.8.0. — Использование sha3 для адресов snative для обеспечения будущей совместимости. — Согласование и консолидация для генезиса и конфигурации между инструментами и цепочками. В запросе приведены ссылки на страницы сравнения версий программного обеспечения Burrow.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/hyperledger-burrow.git
git@api.gitlife.ru:oschina-mirror/hyperledger-burrow.git
oschina-mirror
hyperledger-burrow
hyperledger-burrow
main