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

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 Cash(BCH)

      Официальный сайт |  Объем рыночной капитализации | Wikipedia | Установка ноды | График сложности   В теме действуют все Правила форума! Перед тем как задать вопрос, посмотрите НОВИЧКИ Bits.Media, все сюда,  Что такое "Форки Bitcoin" . Уважайте своё и чужое время. Для обсуждения и поиска программ/драйверов пользуйтесь разделом Файлы. Сообщения, не относящиеся к теме обсуждения (оффтоп), удаляются без предупреждения.   Описание:   Статьи на b

      в SHA2

    • Блокнот с надписью Buy Bitcoin ушел с молотка за $1 млн

      Аукционный дом Scarce.City сообщил о продаже блокнота с надписью Buy Bitcoin. Листок бумаги стал мемом благодаря телеэфиру из Конгресса США семь лет назад. Лот ушел за 16 BTC (около $1 млн). Лот стал рекордным по цене для аукционного дома. Мероприятие по продаже блокнота прошло в биткоин-баре под названием Pub Key в Нью-Йорке. Согласно предоставленной аукционным домом информации, новым владельцем культовой вещи стал анонимный клиент под ником Squirrekkywrath. В криптовалютном сообществе ег

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

    • Комиссии Bitcoin

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

      в Биткоин

    • Халвинг Bitcoin

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

      в Биткоин

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