Перейти к содержанию

JavaScript Bitcoin library


4_tochka

Рекомендуемые сообщения

Опубликовал первую сборку js библиотеки под браузеры и nodejs

 

https://github.com/bitaps-com/jsbtc

 

Отличие от аналогов:

  • Зависимости библиотеки сведены к минимуму, а точнее к 2 модулям bn.js и Buffer.
  • Криптография портирована непосредственно из кодовой базы Bitcoin core посредством компиляции C++ и С в WASM, что обеспечивает скорость и надежность.
  • Реализованны: bip32, bip39, bip44, bip49, bip84, bip141
  • Генерация энтропии со встроенной проверкой на лету, на то на сколько случайность случайна?(NIST random generation tests ).
  • Shamir's secret sharing для мнемонических фраз.
  • Шустро парсит сырые блоки ( Deserialize block[520667] 2 592 transactions in raw format -  91ms, Deserialize block[520667] 2 592 transactions in decoded human readable format - 725ms)
  • Покрытие тестами больше 90%
  • Дизайн самой библиотеки такой же как и https://github.com/bitaps-com/pybtc 

 

Пока не доделал документацию но все посмотреть можно на примерах из тестов.

https://github.com/bitaps-com/jsbtc/blob/master/test/jsbtc.test.js

 

 

 

 

 

 

Снимок экрана 2020-03-07 в 15.46.38.png

Изменено пользователем 4_tochka
Ссылка на комментарий
Поделиться на другие сайты

Плюсик поставил. На первый взгляд круто. WASM реализация...

 

- Лицензия?

- ESLint, prettier?

- Для чего docker?

 

Всё же хотя бы один абзац для чего это использовать и как... Судя по тестам оно делает ... ничего. Это для написания клиента биткойна? Посмотрел https://pybtc.readthedocs.io/en/master/

Там тоже особо ничего нет. Т.е я могу создать адрес. Проверить адрес ... А реального кейса для применения не вижу.

 

Взять к примеру концепцию flux redux, которая намного проще для понимания, так ведь в неё тоже надо вкурить зачем оно нужно, несмотря на прекраснейшую документацию. В итоге написал собственную реализацию, чтобы понять.

 

Такое ощущение, что это писалось именно для обучения, а не для реального использования.

 

Т.е даже если бы у меня был выбор. И Ваша реализация окажется лучше. Значительно проще будет использовать https://github.com/bitcoinjs/bitcoinjs-lib

Т.к перечитать код придётся в любом случае. А потом ещё полностью прочитать Ваш код. А потом ещё окажется что в одного человека никто не делает и разумнее обойтись минимальной кровью на обучении. И в текущем виде, есть серьёзный риск, что это потом превратиться в собственный форк. А поддерживать собственные библиотеки чрезвычайно затратное дело.

 

Как бы, спасибо. Но смысл всего этого не понятен, ведь это требуется для бэка. А бэк на js, ruby и прочем сахаре нужен в первую очередь для быстрого, лёгкого и понятного старта. И эта библиотека его не даёт... 

 

Я наверное чего-то действительно не понимаю, но ведь есть же оригинальный https://bitcoin.org/en/developer-reference#bitcoin-core-apis ?

Ссылка на комментарий
Поделиться на другие сайты

Данная библиотека писалась как раз таки с прицелом на браузеры, а поддержка nodejs как бы плюсом. Область применения в моем видении это веб кошельки либо веб сервисы осуществляющие  работу с битком. Приведу простой пример: 

 

Цитата

 

 

tx = new Transaction({testnet: true});

tx.addInput({txId: "3c24118731779e8fb9c034e9826b44516c5c0d36b7260eaae8af2c6d12dd80b2",

  address: "2MxgNabrhi6kGzNCapEwnk7GYkNmDZGHr25", redeemScript: a.script});
  tx.addOutput({value: 120000000, address: "mouKMbHPwWLUCmgqKnkHT7PR3KdF4CNREh"});
   
  // Alice sign first
  tx.signInput(0, {privateKey: [a1.privateKey]});
  let rtx = tx.serialize();
  // Alice send half signed tx to Bob
  // Bob in play
  tx = new Transaction({rawTx: rtx, testnet: true});
  tx.signInput(0, {privateKey: [a2.privateKey], address: a.address, redeemScript: a.script});
  equal(t, tx.serialize());

 

Вся движуха условно происходит в браузере. Алиса и Боб владеют совместно биткоинами заблокированными на адресе  P2SH 2 из 2 мультисиг.

Они решают сделать перевод и Алиса создает транзакцию по договоренностью с Бобом. Алиса подписывает транзакцию и получает ее в текстовом виде ( tx.serialize())

Транзакция в данный момент подписана только на половину и еще не валидна. Алиса шлет эту транзакцию условно скажем по емайлу Бобу. Боб получив ее парсит и проверяет все ли верно. Ставит подпись и отправляет в сеть. Функционал библиотеки обеспечивает корректную подпись и расстановку в нужном порядке подписей  в режиме частичного подписания транзакции.  Это пример того как данная библиотека может использоваться, это своего рода Биткон-Армейский нож для браузера. 

 

Вопрос про докер был, он  используется чисто для компиляции WASM через  emscripten. 

ESLint, prettier - в планах добавить

Лицензия - GPL 3. дописать надо в гитхабе

 

 

https://pybtc.readthedocs.io/en/master/. Это уже серверная вещь. Кейс применения это эксплорер блоков bitaps.com и сервисы процессинга.  В частности одна из ключевых вещей которые там реализована это как раз общение с bitcoin-core api. Когда мы забираем через ZMQ весь поток сознания из сети битка и обрабатываем его если пропуск по ZMQ догоняемся по jsonrpc, так же если ушли в офлайн синкаемся до актуального состояния по jsonrpc. https://github.com/bitaps-com/pybtc/tree/master/pybtc/connector

 

Пока нет еще паблик релиза по экcплореру, но так как сейчас все  open source пишу  черновик обновленной версии находиться тут https://github.com/bitaps-com/btcapiserver. Скоро доделаю ?

 

 

 

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Similar Topics

    • Курс Bitcoin (только про Bitcoin)

      В данной ветке предлагаю вести обсуждение курса Bitcoin Для желающих безнаказанно оффтопить был создан топик Курсы криптовалют в разделе флейма, там можно уходить в рассуждения сколь угодно далеко от основной темы, так что велком! Также у нас есть ветка по обсуждению "справедливого курса" Bitcoin     Несколько полезных инструментов для отслеживания курса: bitcoin.clarkmoody отображает стакан Mt.Gox и строит в реалтайме японские свечи bitcoinchain сравнение курсов на разных биржах н

      в Биткоин

    • Халвинг Bitcoin

      До халвинга биткоина осталось 12 дней. Чего ждать после? Стоить ли полагаться на статистику роста цены предыдущих халвингов?        Ждем повторения события☺️

      в Биткоин

    • Комиссии в сетях Bitcoin, Ethereum, BCH и прочих — сколько ставить?

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

      в Общий

    • ФБР расследует кражу биткоинов с кошелька разработчика Bitcoin Core Люка Дашира

      Федеральное бюро расследований (ФБР) США в 2023 году запрашивало персональные данные участников встречи CoreDev Atlanta в рамках расследования дела о похищении 217 BTC у разработчика Bitcoin Core Люка Дашира. Сооснователь некоммерческой организации Bitcoin Brink Майк Шмидт (Mike Schmidt) рассказал, что в 2023 году ФБР потребовало у него личные данные всех участников встречи CoreDev Atlanta, состоявшейся в октябре 2022 года, за несколько дней до конференции TABConf 2022. В ходе переговоров с

      в Новости криптовалют

    • Владелец Bitcoin.org опасается раскола в сообществе Биткоина

      Совладелец и оператор сайта Bitcoin.org, использующий псевдоним Cobra, опасается, что грядущий раскол в сообществе Биткоина может негативно сказаться на экосистеме первой криптовалюты. Cobra предположил, что в конфликте на «арене Биткоина» люди могут разделиться на два «лагеря»: те, кто хотят, чтобы Биткоин сохранил статус-кво и оставался без изменений, и «улучшатели», поддерживающие изменение функциональности сети. Последние будут стремиться развивать Биткоин и включать в него больше функц

      в Новости криптовалют

×
×
  • Создать...