by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Rouc4
    @Rouc4
    @dmitry-timofeev спасибо! Очень признателен за ответ!
    Aleksey Sidorov
    @alekseysidorov
    Еще хочу заметить, что если добавленый таким ad-hoc способом сервис имеет state hash, то он его не должен вычислять для высот меньше, чем момент добавления сервиса. Иначе это сломает работу аудиторов
    Rouc4
    @Rouc4
    @alekseysidorov, понял. Спасибо! Буду изучать.
    Elena Buzovska
    @Buzovska
    @/all Самое время зарегистрироваться на бесплатный вебинар для разработчиков от Exonum. Мы покажем как разработать электронный аукцион на блокчейн. Зарегистрироваться сейчас: https://bitfury.zoom.us/webinar/register/6315689822497/WN_pZf4qC9YQWKrm_6poKyzIA
    Vladislav Karnaukhov
    @Asmor-K
    Добрый день, могут ли ноды, в частности валидаторы, иметь одинаковые сервисные ключи?
    Rouc4
    @Rouc4
    @Asmor-K что вы подразумеваете под сервисными ключами? Всем ДД!
    Aleksey Sidorov
    @alekseysidorov
    Нет, там в коде теперь есть проверка, чтобы все ключи были уникальными, иначе это делает решение небезопасным
    Arsen Guzhva
    @Erchard
    Привет. В старых версиях Экзонума были красивые логи при запуске ноды.
    Как-то можно их включить в 12 версии?
    или какой-то ключ нужно указывать/неуказывать ?
    ivan-ochc
    @ivan-ochc
    Привет. @Erchard , не могли бы вы уточнить что именно вы имеете ввиду? Логи как-то отличались от стандартных (RUST_LOG=exonum=info)?
    Arsen Guzhva
    @Erchard
    Все норм. Нашел. Спасибо.
    Sanin Ivan
    @Sanin_Ivan_twitter
    привет, подскажите, я правильно понимаю, что самый простой способ послать транзакцию в метод "/api/explorer/v1/transactions" это через exonum-light-client ?
    ivan-ochc
    @ivan-ochc
    @Sanin_Ivan_twitter, да, через python или js клиент
    Sanin Ivan
    @Sanin_Ivan_twitter
    @ivan-ochc спасибо
    Sanin Ivan
    @Sanin_Ivan_twitter
    привет, а подскажите blockchain-explorer будет работать с 0.12 версией экзонума ?
    на гитхабе написано, что поддерживается версия 0.10, про 0.12 ничего не сказано
    ivan-ochc
    @ivan-ochc
    привет. на 0.12 работать не будет.
    Sanin Ivan
    @Sanin_Ivan_twitter
    @ivan-ochc а планируется поддержка ?
    ivan-ochc
    @ivan-ochc
    да, планируется, но точных сроков сейчас не могу сказать
    Sanin Ivan
    @Sanin_Ivan_twitter
    понял, спасибо
    Sanin Ivan
    @Sanin_Ivan_twitter
    привет, а есть у вас докер с необходимым окружением, чтобы билдить приложения, основанные на фреймворке экзонум ?
    вопрос снимается, похоже нашел https://hub.docker.com/r/exonumhub/exonum-cryptocurrency-advanced
    Sanin Ivan
    @Sanin_Ivan_twitter
    @ivan-ochc привет, а у вас нет докерфайлов сборки exonum под alpine ?
    ivan-ochc
    @ivan-ochc
    @Sanin_Ivan_twitter , привет, нет, есть только под убунту
    Sanin Ivan
    @Sanin_Ivan_twitter
    расточительно )
    Sanin Ivan
    @Sanin_Ivan_twitter
    привет, а здесь можно задавать вопросы по exonum cis ?
    Roman
    @rshirochenko
    Привет, @Sanin_Ivan_twitter! по вопросам по exonum cis можешь писать мне в личку :)
    Sanin Ivan
    @Sanin_Ivan_twitter
    вопросик такой возник, вот есть у нас ноды высотой 5923944, у одной из нод грохнули базу, сейчас она синкается и происходит это не быстро, можно как то ускорить этот процесс ? если перенести всю папку db с одной ноды на другую так получится или так не будет работать ?
    ivan-ochc
    @ivan-ochc
    @Sanin_Ivan_twitter , да, так можно сделать
    Sanin Ivan
    @Sanin_Ivan_twitter
    @ivan-ochc а пока идет синхронизация 4й ноды из 4х в сети консенсус работать не должен, я правильно понимаю ?
    ivan-ochc
    @ivan-ochc
    @Sanin_Ivan_twitter , в этом случае консенсус будет работать
    Sanin Ivan
    @Sanin_Ivan_twitter
    @ivan-ochc привет, а java-binding можно писать на котлине ?
    Dmitry Timofeev
    @dmitry-timofeev

    @Sanin_Ivan_twitter , еще не пробовали, но судя по официальной документации котлина, то должно работать. Насколько понимаю, нужно будет в зависимостях сервиса указать стандартную библиотеку котлина и настроить сборку исходников.

    Один нюанс: т.к. каждый Икзонум-сервис загружается отдельным загрузчиком, то при такой организации для каждого типа сервиса будет загружена своя копия стандартной библиотеки котлина, что при большом числе одновременно загруженных различных типов сервисов приведет к повышенному расходу памяти (и ЦПУ на JIT и GC). Но это несущественно для большинства применений (если у вас меньше дюжины различных типов сервисов).

    Если потребуется что-то еще либо этого достаточно — дайте знать, пожалуйста, о результатах! Полноценную поддержку котлина, думаю, добавим несколько позже.
    Sanin Ivan
    @Sanin_Ivan_twitter
    @dmitry-timofeev спасибо, есть пища для размышлений !)
    Rinat Vasilev
    @badadin
    Здравствуйте. Есть ли какой-нибудь тестовый, уже развернутый сервер, чтобы к нему подключиться и потестить проект с Java Light Client внутри?
    Vladislav Karnaukhov
    @Asmor-K
    Добрый день, возникла проблема с exonum v0.11 по трейс логу нода падает при прыжке на первый раунд, а именно MAKE LOCK (1), и потом выдает illegal instruction (core dumped), в чем может быть проблема?
    Aleksey Sidorov
    @alekseysidorov

    Вообще illegal instruction обычно говорит о том, что виртуалка на которой запущено приложение не предоставляет инструкции какие-то обычно это sse4.1

    Проверить очень далеко. Нужно или запустить ноду под gdb или lldb и дождаться падения, а потом посмотреть стек трейс.
    Или уже найти куда он сохранил core dump и открыть уже его чтобы стек трейс получить

    Vladislav Karnaukhov
    @Asmor-K
    @alekseysidorov нода запущена в докере, при этом на сборке от 14 февраля нет никаких проблем, на более свежих сборках, нода начинает падать после первой транзакции не из exonum_time, в какой зависимости может быть проблема?
    Aleksey Sidorov
    @alekseysidorov
    Без стек трейса не подскажу, увы.
    Vladislav Karnaukhov
    @Asmor-K
    Спасибо за информацию, если не получится самому разобраться в трейсе, то обращусь
    Sanin Ivan
    @Sanin_Ivan_twitter
    привет, вопрос такой, если у меня несколько интерфейсов с транзакциями #[exonum_interface], то в каждом интерфейсе должна быть своя нумерация методов #[interface_method(id = 0)] или сквозная нумерация через все интерфейсы ?
    Sanin Ivan
    @Sanin_Ivan_twitter
    один сервис наследует несколько интерфейсов
    Alex Ostrovski
    @slowli
    @Sanin_Ivan_twitter Привет, каждый интерфейс имеет свою нумерацию; т.е. не нужно заботиться о том, чтобы идентификаторы методов в различных интерфейсах не пересекались.
    Sanin Ivan
    @Sanin_Ivan_twitter
    @slowli принял, спасибо
    Sanin Ivan
    @Sanin_Ivan_twitter
    Hi there ! Столкнулся со следующей проблемой: у меня несколько интерфейсов и один сервис реализует их все, при написании тестов через exonum_testkit у меня тесты проходят только для интерфеса "Fizz", который первым стоит в атрибуте #[service_dispatcher(implements("Fizz","Buzz","FizzBuzz"))], при этом над каждым интерфейсом у меня атрибут #[exonum_interface]. Тест содержит post транзакции а затем пытаюсь get методом вытащить ее. Если я в списке имплементаций ставлю "Buzz" на первое место, то у меня проходят тесты только для транзакций интерфейса "Buzz". Пробовал так же менять атрибут #[exonum_interface] на #[exonum_interface(interface="Buzz")], в этом случае когда я пытаюсь выполнить транзакцию keypair.method_name(INSTANCE_ID, Transaction{...}) получаю панику "Creating transactions with non-default interface is not yet supported". Есть какой-то способ написать тесты для нескольких интерфейсов или пока не реализовано и едиственный способ все транзакции объединить в один интерфейс ?
    Alex Ostrovski
    @slowli

    @Sanin_Ivan_twitter Для сервисов существует понятие дефолтного интерфейса. Это интерфейс с пустым именем, т.е. с атрибутом #[exonum_interface], в котором не указан аргумент interface.

    У сервиса может быть не более одного дефолтного интерфейса, но из-за нетривиальности реализации это сейчас не проверяется на уровне дерайв-макроса ServiceDispatcher. Если указать несколько дефолтных интерфейсов, результат неопределен (по факту, будет "включен" только один из интерфейсов).

    Для именованных интерфейсов действительно пока невозможно отправить транзакцию, подписанную публичным ключом (в т.ч. через тесткит, но и на реальных узлах такое же поведение). Единственный способ обратиться к сервису через такой интерфейс - вызов из этого же или другого сервиса; как пример, этот тест или интерфейс конфигурации (последний использует более низкоуровневый API). Такое ограничение связано с тем, что интерфейсы в целом пока являются экспериментальной фичой.

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

    Sanin Ivan
    @Sanin_Ivan_twitter
    @slowli спасибо. а какие еще могут быть цели у интерфейса ? из документации и кода я понял, что "интерфейс"- это аггрегация всех транзакций
    Alex Ostrovski
    @slowli
    В целом, интерфейс, как и в более широком контексте программирования - это контракт сервиса с вызывающей стороной (на данном этапе, с другими сервисами). Например, интерфейс конфигурации, определенный в супервизоре, позволяет валидировать и изменять конфигурацию любого сервиса, который этот интерфейс реализует, путем голосования администраторов системы (что, собственно, реализовано в супервизоре). Другой пример потенциального применения интерфейсов - это интерфейсы для токенов, аналог ERС-20 / ERС-721 из Ethereum; однако подобные варианты использования пока существенно ограничены тем, что интерфейс нельзя вызвать "из внешнего мира".