Jump to content
Sign in to follow this  
4_tochka

JavaScript Bitcoin library

Recommended Posts

Опубликовал первую сборку 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

Edited by 4_tochka

Share this post


Link to post
Share on other sites

Плюсик поставил. На первый взгляд круто. 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 ?

Share this post


Link to post
Share on other sites

Данная библиотека писалась как раз таки с прицелом на браузеры, а поддержка 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. Скоро доделаю 🙂

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Topics

    • Курс Bitcoin

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

      in Биткоин

    • Конвертация Bitcoin в наличные / на банковскую карту

      Посоветуйте как вывести крупную сумму биткоина, вывод на карту банка не рассматривается так как думаю, что заинтересуются . Возможно есть какие-то карты или что-то похожее(желательно с доставкой в Россию). Пытался найти карты биткоин, но в большинстве случаев доставка в Россию невозможна. Буду очень благодарен если подскажете как решить проблему. Спасибо.

      in Биткоин

    • Bitcoin Suisse поддержит стейкинг XTZ и их хранение в Bitcoin Suisse Vault

      Швейцарский криптовалютный брокер Bitcoin Suisse предоставил институциональным клиентам возможность стейкинга XTZ и их хранения с высоким уровнем защиты в хранилище Bitcoin Suisse Vault. Брокерская фирма хранит цифровые активы на сумму более $1 млрд и поддерживает стейкинг XTZ с июля 2018 года. Однако теперь организации могут хранить XTZ в сертифицированном хранилище Bitcoin Suisse Vault, соответствующем стандарту ISAE 3402. Соблюдение стандарта было подтверждено консалтинговой компанией

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

    • Bitcoin Association Switzerland и Tezos выпустят токенизированную версию биткоина tzBTC

      Bitcoin Association Switzerland и Tezos Foundation выпустят первую токенизированную версию биткоина на блокчейне Tezos – tzBTC, который станет «проводником» в индустрию DeFi. tzBTC будет эквивалентен 1 BTC и выпущен в соответствии с новым стандартом токенов Tezos FA1.2. По словам президента Bitcoin Association Switzerland Лукаса Бетшарта (Lucas Betschart), с помощью tzBTC Tezos сможет использовать потенциал биткоина для более эффективной работы смарт-контрактов в области DeFi.   Ин

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

    • Транзакции Bitcoin

      Get_Raw https://bitaps.com/raw/transaction/2da04ab314f98c82cf73366cf2c20f038ac0ce74a1235772ff10961dba71500a https://blockchain.info/rawtx/2da04ab314f98c82cf73366cf2c20f038ac0ce74a1235772ff10961dba71500a?format=hex     Decode_Raw_Transaction      -  https://www.blockchain.com/btc/decode-tx   Broadcast_Raw_Transaction [hex] https://bitaps.com/broadcast https://live.blockcypher.com/btc/pushtx/ https://www.blockchain.com/btc/pushtx https://

      in Биткоин

×
×
  • Create New...