Существуют ли какие-либо языки, которые не могут вызвать статические внешние библиотеки C? Я думаю, что это твердый раствор и одна из вещей, которые я очень рад в последнем выпуске. К моему знанию C # (.net), Java, идти, и питон всей поддержка вызова гр библиотеки. Может быть, мы можем собрать некоторые требования (тип данных и т.д.), чтобы обеспечить библиотеку остается легко вызываемыми в различных языках. Я надеюсь увидеть libconsensus значительно расширена в будущем. Это первый шаг в обеспечении безопасного развития альтернативных полных узлов.
Вроде. Есть хостинг-провайдеров, которые только позволяют запускать код, написанный на некотором модном языке или другой, без каких-либо собственных библиотек кода (я не знаю деталей, как, почему). Там были некоторые большие и высокие услуги Bitcoin профиля, работающие в этих принимающих окружающих средах и, таким образом, "не в состоянии" для запуска собственного кода, и, таким образом, очень заинтересованы в полном переопределённом на других языках. Я не знаю, какое количество уместности такого рода мотивации будет иметь в будущем.
Кто-нибудь знает, если bitcoinj и другие библиотеки намерены интегрировать libconsensus?
Я думаю, что это действительно слишком незрелыми, чтобы сказать прямо сейчас. На данный момент это просто скрипт.
За libconsensus есть идея сокращения кода консенсуса в байткод с тривиальным переводчиком. Мы не уверены, насколько хорошо это будет работать, но это то, что люди также работают в направлении. Libconsensus является необходимым первым шагом, который является полезным, даже если путь байткодом не работает.
Интересно. Есть ли у вас какие-либо ссылки?
[/ Цитата] Это в основном было IRC обсуждения в течение последних нескольких years-- этого усилие довольно низкий приоритет, особенно поскольку libconsensus является жестким PREREQ, как это неразумно ставить всю реализацию в медленном байткоде, поэтому первый консенсусные части должны быть полностью изолированы на части с ограниченным взаимодействием. Там был какой-то эксперимент работы, который имел некоторые выплаты, например,
http://moxielogic.org/blog/real-world-multiply.html.
Идея просто достаточно, то вы можете создать набор команд загрузки / хранения машины C-таргетинг, который может быть запущен с <1000 переключатель линии заявление (дерзость такой пример), один, который достаточно прост, чтобы формально определить и даже доказать несколько различных реализаций Маха спецификации. Код консенсуса только компилируется в байт-код, а затем каждый может использовать один и тот же байт-код. Задача состоит в том, что простая машина имеет производительность, которая может быть неприемлемо низкой, добавляя общий JIT как вещи в вашей виртуальной машине есть безумные риски и делает его гораздо труднее рассуждать о или реализации точно. Одним из возможных решений, что расширяют архитектуру, чтобы добавить некоторые шифрованные блоки подобно тому, как многие встроенные процессоры имеют MultiMedia accelerators-- макроскопические жёстко прописанные единиц, которые делают такие вещи, как выполнить все 8x8 dct-- например так что набор команд большой оператор переключателя с небольшим количеством специальной обработки корпуса делает такие вещи, как вычислительные SHA256 с машинным кодом. Это относительно легко быть вполне уверены, что реализация функции сжатия SHA256 правильна ... другие криптографические реализации, в меньшей степени. Надеюсь, его можно добавить только достаточно родные ускорителей, чтобы получить приемлемую производительность без значительного увеличения сложности реализации / рискованной. В противном случае чистый байткодом подход будет достаточно медленно, что бы люди либо JIT его или заменить его собственной реализации и победите выгоды безопасности.