Jump to content

JavaScript Bitcoin library


4_tochka

Recommended Posts

Posted (edited)

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

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

Posted

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

 

 

 

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Similar Topics

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

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

      in Биткоин

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

      Explorer BTC https://bitaps.com/ + Other Explorers https://blockchair.com/ https://live.blockcypher.com/   Raw Transaction https://bitaps.com/raw/transaction/2da04ab314f98c82cf73366cf2c20f038ac0ce74a1235772ff10961dba71500a https://blockchain.info/rawtx/2da04ab314f98c82cf73366cf2c20f038ac0ce74a1235772ff10961dba71500a?format=hex   Decode Raw Transaction      -  https://www.blockchain.com/btc/decode-tx   Unspent Output https://li

      in Биткоин

    • Восстановление кошелька Bitcoin

      Многие задаются вопросом как сделать резервную копию кошелька. В этой статье мы и обсудим несколько вариантов сохранения кошельков, а также их ремонта в случае повреждения. Итак, приступим: Вся информация о кошельке, адрес, количество монет, транзакции находится в одном файле, который называется wallet.dat, который, по умолчанию, находится в папке по пути C:/users/appdata/roaming/НазваниеМонеты. (Для быстрого перехода в папку appdata в windows 7 можно нажать кнопку "Пуск" и набрать в строке по

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

    • Bitcoin Core

      Bitcoin Core - это полноценный клиент, составляющий основу сети. Для него характерен высокий уровень безопасности, конфиденциальности и стабильности. Однако, у него меньше опций и он занимает довольно много места на диске и оперативной памяти.   Официальный сайт  |  Исходный код  |  История версий  В теме действуют все Правила форума: перед тем как задать вопрос, посмотрите НОВИЧКИ Bits.Media, все сюда. Уважайте своё и чужое время; для обсуждения и поиск

      in Кошельки для криптовалют

    • Эрик Трамп и канадская Hut 8 запустили майнинговый бизнес под брендом American Bitcoin

      Канадская майнинговая компания Hut 8 и группа инвесторов во главе с сыновьями президента США Дональда Трампа Эриком и Дональдом-младшим объявили о начале работы майнингового подразделения компании American Bitcoin, занимавшейся до этого предоставлением услуг дата-центров. Hut 8 передала большую часть своих ASIC-майнеров компании American Data Centers в обмен на 80% долю. После завершения сделки American Data Centers была переименована в American Bitcoin. Майнинговый бизнес выделили в отдель

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

×
×
  • Create New...