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 Men - мошенник

      Создаём эту тему, что уберечь пользователей от мошенника на этом форуме @Bitcoin Men 13.09.2020 предложил нам услуги по продвижению. Говорил уверенно, скинул ссылку на свой профиль. Когда предложили сделку через гаранта bits.media персонаж ответил следующее https://prnt.sc/urqveo Решили без гаранта, оговорили сроки и задачу. Сначала оплатили 50$ на advcash U 0379 8650 4221, затем 200$ на QIWI +79281348617. Сроки истекли, началось "кормление завтраками", мороз и так

      in Магазины и сервисы (обсуждение, претензии)

    • Bitcoin Core (Bitcoin-QT)

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

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

    • Проверка Bitcoin на "чистоту"

      Всем привет! Мы планируем запустить сервис по проверке btc-адресов и btc-транзакций на предмет "чистоты" биткоинов, количества поступлений с грязных источников (вроде черного рынка, взломанных адресов, вирусов и т.п.). В Европе с 10 января 2020 года такие проверки станут обязательными в связи с тем, что вступит в силу 5-я Директива AML (5AMLD). Хочется узнать - вы бы стали пользоваться таким сервисом? Мы подготовили небольшой опросник, его заполнение займет 2 минуты: https://docs.google.com/

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

    • Сервисы, где можно узнать оптимальный размер комиссии для Bitcoin, Ethereum, BCH и прочих монет

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

      in Общий

×
×
  • Create New...