Комментарии 21
В биткоин клиенте нету давно аккаунтов, но архаизмы остались. Весь инет рекомендует оперировать raw транзакциями:
- генерим аддресс для юзера getrawchangeaddress (SO discussion)
- listunspent 6 (например транзакции с 6 конфирмами), в этом архиве отбираем все транзакции, которые пришли на сгенеренные адреса, и все.
Всего 2 команды :)
Отправка биткоинов (если дойдет до этого) делается через rawtransactions: createrawtransaction/signrawtransaction/sendrawtransaction, в первой указываются архивом транзакции на валете, которые надо использовать (через айди и vout). Следом там указыватся архив получателей. Комиссия — это недоданные биткоины. То бишь если там в сумме 0.9, а отправлено юзерам 0.8, то 0.1 уйдет как miner fee.
curl --data-binary
обычная тоже проходит: curl -u login:passwd -X POST -H "Content-Type: application/json" --data 'data_here' http://ip:port
у меня своя либа для нескольких валлетов (btc/eth/xmr) и 3 трейд сайтов. Самый кривой апи — это у ETH.
А вот raw транзакции показались излишне замороченными для быстрого старта. Сам с ними много не работал, но, как понимаю, это может сократить комиссию, если есть необходимость отправки пачкой платежи на несколько адресов?
А по curl — я вообще обычно для краткости пишу -d 'data_here' ).
А можно в личку скинуть линк на либу? Или она проприетарная?
А вот raw транзакции показались излишне замороченными для быстрого старта. Сам с ними много не работал, но, как понимаю, это может сократить комиссию, если есть необходимость отправки пачкой платежи на несколько адресов?
Все платежи надо делать через них, иначе логику (выбор транзакций для создания новой) контролирует сам клиент (bitcoin core client). Комиссия — как я писал выше, это просто недоздача. Через core клиент получаем размер комиссию через estimatesmartfee 2
, что даст стоимость для 1кб данных чтобы максимум через через 2 блока оказаться в blockchain. Следом расчитать размер комиссии по формуле IN146+OUT34+11 bytes, где IN — колво входых адресов, а OUT — выходных. Вот по этой формуле расчитывается комиссия, чтобы за 7-8 минут получить первый конфирм. Далее — многие используют усредненные комиссии, там 30 минут — час, когда несрочно.
Транзакция, сделанная руками (тестнет, там комиссия от балды, но обычно 0.01): https://live.blockcypher.com/btc-testnet/tx/ffa1b85c05f52205d432f290680b2ccb09c93d5049186cdcfbc33953deb224c2/
{"jsonrpc":"2.0","id":"23767114995403","method":"createrawtransaction","params":[[{"txid":"9f0ff312df1c879594c89f5c25c634ef11e95a61591daf295e7b931ac32b12ec","vout":0}],{"n3wm3yNqXURGzAHHjEMUzrtHtH2KKVgmLx":0.08}]}
— 0.01 ушло на комиссию сети.
затем вывод подписывается через signrawtransaction
и ее вывод отправляется через sendrawtransaction
.
Кстати, про комиссию, если например надо отправить 3 BTC, комиссия 0.05BTC, и на входе мы имеем 5 BTC, то надо сделать raw и отправить 3 получателю, 1.95 себе на новый адресс. Это, например, биткоин клиент генерит сам (когда на автомате посылает). Так же в случае с raw можно делать транзакции от транзакций с 0 уровнем подтверждения, то бишь там пришли бабки, и надо с ним сделать неспешных платежей. То можно спокойно генерить новые tx от tx, которые были отправлены недавно.
А можно в личку скинуть линк на либу? Или она проприетарная?
Не могу расшарить, это ядро проекта, с пулом и прочими пряниками. Кстати пул очень хорошая вещь. И через raw надо группировать платежи юзерам. Это уменьшает комиссию им + можно очень много плюшек вводить (как создана логика пула). Даже далеко ходить не надо — просто группировать все на 1 адрес это уже пул. И потраченная комиссия потом просто взымается с юзеров. А если биткоины юзеров "простаивают", то они и так уже в системе. Но это к теме статьи не относится :)
Вот по этой формуле расчитывается комиссия, чтобы за 7-8 минут получить первый конфирм
Это довольно сложно, если учесть, что среднее время генерации блока 10 минут :)
А что у вас за проект, если не секрет?
Если кратко: там онлайн крипто кошельки, обмен через биржи, банки, пластик, трейдплатформа, плюшки от госва.
Это в порядке роста. Очень интересно девелопить, сейчас в самом начале :)
Мое личное мнение — крипта, это воздух. Её стоимость обусловливается востребованностью и ограниченностью в гос-вах. В ней есть потенциал только чтобы делать на ней деньги, предоставляя сервисы тем, кто в нее верит или так же хочет делать деньги.
Сам я ее не использую, ничего в ней не храню и не инвестирую.
Да и либ в сети полно, как нормальных, так и не очень.
Для узкоспециализорованных проектов надо как правио 5-7 вызовов реализовать из всего перечня. Далее — выходной формат унифицируется как возможно. Хотя для разных вылют разная точность.
-prune=колво_мегабайт
c 8192 он занимает 9.9
Так что 4 с 551 мегабайтами — что-то там не так.
sudo du -h
77M ./blocks/index
516M ./blocks
424K ./database
2.9G ./chainstate
3.4G .
551M — это размер под блоки.
2.9G — chainstate — база непотраченных выходов (балансов).
Всего — 3.4G
— появляется на шаге проверки: curl --data-binary…
попробовал через: bitcoin-cli getwalletinfo
— нода ищет файл настоек по умолчанию. Тогда 2 вопроса: зачем и как перенаправить ноду в /etc/bitcoin/bitcoin.conf — ?
Это еще актуально? Кто-то в реальности подключал и использует прием крипто-платежей в битрикс магазине?
за последнее время появилось множество криптопроцессинговых сервисов, позволяющих быстро провести интеграцию по API или с помощью готовых модулей интеграции с популярными CMS преимущественно зарубежными по типу Opencart, Woocommerce и др. С точки зрения бизнеса не особо вижу смысла делать собственный модуль оплаты криптой, если есть готовые решения с широким функционалом. Если у выбранного сервиса нет готовой интеграции под Битрикс, ее можно недорого заказать, предоставив разработчику API сервиса или обратившись с запросом напрямую в сервис
Делаем приём платежей криптовалютой своими руками