Веб-API для взаимодействия с биткоин кошелька

Мне нужно автоматически отправлять средства со своего hotwallet, чтобы пользователи на моем сайте в разное время, когда они делают что-то на сайте.

Позже я также должны быть в состоянии видеть общий баланс для получения данных об итоговых адрес и средства и т. д. (для этого у меня есть АВР блок Explorer и настройки API для чтения в блокчейне адреса)

Я знаю, что есть все команды, которые могут выполняться из терминала или Cmd при запуске bitcoind, но как вызвать эти с моего сайта? Мне нужно написать веб-API, чтобы обрабатывать такие запросы непосредственно от сети? или это более распространено, чтобы сделать звонок, чтобы запустить эти команды через скрипты непосредственно против bitcoind?

Любая помощь ценится

+78
user5177571 1 апр. 2010 г., 8:26:16
18 ответов

Быстрый и грязный код для вашей задачи. Надеюсь, что это помогает.

1) Давайте создадим адрес от секрет.

статический недействительным p2sh_create ( )
{
 константный MyByteArray секрет ( класс QByteArray ( "мой секрет" ) );
 константный MyKey32 и SHA256 ( секрет.и SHA256 ( ) );
 константный MyByteArray redeemScript ( MyByteArray ( ).putInt8 ( OP_SHA256 ).putPush ( и SHA256 ).putInt8 ( OP_EQUAL ) );
 константный MyKey20 hash160 ( redeemScript.hash160 ( ) );
 константные адреса в QString ( hash160.toStringP2SH ( ) );

 qDebug ( ) << "Секретные =" << в QString ( секрет.toHex ( ) ) << "(в hex)";
 qDebug ( ) << "и SHA256 =" << и SHA256.toStringRev ( );
 qDebug ( ) << "redeemScript=" << типа QString ( redeemScript.toHex ( ) );
 qDebug ( ) << "hash160 =" << типа QString ( hash160.toHex ( ) );
 qDebug ( ) << "адрес =" << адрес;
}

Вывод:

секрет = "4d792073656372657420706872617365" (в hex)
и SHA256 = "73d83ecabab6ba96a47f03d0e21ffbdfeaab5d337b7e93a0cc2e85019190fb3f"
redeemScript= "a82073d83ecabab6ba96a47f03d0e21ffbdfeaab5d337b7e93a0cc2e85019190fb3f87"
hash160 = "fa3156d1e95111b0105fb538711bf8e19dadf1bd"
адрес = "2NG482PHrj6f41UoqUHYGVkUR39oB3Uvwke"

2) Теперь давайте фонд адрес 2NG482PHrj6f41UoqUHYGVkUR39oB3Uvwke. Перейдите по ссылке https://testnet.coinfaucet.eu/en/ и задать для некоторых тестовых монет. Кран тестовом режиме, отправил меня 0.86978283 TBTCБЫЛ в сделке https://testnet.smartbit.com.au/tx/21c181c6052f6266ea6c936cf86111d6a2662a1f1e3251560b718fb8b1e6457d

3) Теперь создайте расходов Техас от этого адреса.

статический недействительным p2sh_spend ( )
{
 константный MyByteArray секрет ( класс QByteArray ( "мой секрет" ) );
 константный MyKey32 и SHA256 ( секрет.и SHA256 ( ) );
 константный MyByteArray redeemScript ( MyByteArray ( ).putInt8 ( OP_SHA256 ).putPush ( и SHA256 ).putInt8 ( OP_EQUAL ) );
 константный MyByteArray Техас ( MyByteArray ( )
 .putInt32 ( TX_VERSION )
 .putInt8 ( 1 )
 .putArray ( MyKey32::fromHex ( "21c181c6052f6266ea6c936cf86111d6a2662a1f1e3251560b718fb8b1e6457d" ) )
 .putInt32 ( 1 )
 .putPrefixed ( MyByteArray ( ).putPush ( секрет ).putPush ( redeemScript ) )
 .putInt32 ( TX_SEQUENCE )
 .putInt8 ( 1 )
 .putInt64 ( 86978283 - 200 )
 .putPrefixed ( MyByteArray ( ).putInt8 ( OP_HASH160 ).putPush ( MyKey20::о ( "2N8cj6kf3RkPHzQSCG13bvq6iXXWWPuGurz" ) ).putInt8 ( OP_EQUAL ) )
 .putInt32 ( TX_LOCK ) );
 константный MyKey32 txid ( Техас.sha256d ( ) );

 qDebug ( ) << "Техас =" << в QString ( Техас.toHex ( ) );
 qDebug ( ) << "txid =" << txid.метод toString ( );
}

Вывод:

ТХ = "01000000017d45e6b1b88f710b5651321e1f2a66a2d61161f86c936cea66622f05c681c1210100000035104d79207365637265742070687261736523a82073d83ecabab6ba96a47f03d0e21ffbdfeaab5d337b7e93a0cc2e85019190fb3f87ffffffff01232e2f050000000017a914a89aec4cd53e6d74215332459b7fea3ec4aca9758700000000"
txid = "75e0904ca3f8895c6f6af45f1c7f3d1f9dcee32814ca144852bce669a5ee4421"

4) Теперь нажимаем TX к сети: https://testnet.smartbit.com.au/txs/pushtx

5) вуаля! https://testnet.smartbit.com.au/tx/75e0904ca3f8895c6f6af45f1c7f3d1f9dcee32814ca144852bce669a5ee4421

+994
MHMYunos 03 февр. '09 в 4:24

Я исследовал последние новости крипто и кажется, что я не понимаю смысла в стабильной торговой монеты. Есть ли логичный повод для торговли (с плечом) стабильный монет за фиат?

+994
she alea 15 янв. 2019 г., 0:12:01

Вы почти правильно ;-)

Вы можете создать открытый/закрытый ключ с помощью OpenSSL (в самом деле, некоторые кошельки libaries использовать OpenSSL для генерации ключей). Однако, биткоин-адрес не ваш публичный ключ, но функция такого открытого ключа. Точная функция определена здесь https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses

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

+955
Nathen Silver 4 мар. 2018 г., 5:19:25

Я понимаю, что не segwit узлов интерпретировать txes segwit кому как-можно-потратить txes, и они не могут проверить txes, которые проводят мероприятия segwit.

Но когда старый рудокоп стиль получает segwit Техас помоему он считает его недействительным, так? (Это потому, что он представляется им как странные сделки без входа и 1 выход.) Итак, следует ли из этого, что txes segwit только может быть добыто в блоке модернизированный шахтеров?

+921
wharevvs 8 авг. 2012 г., 2:12:33

Посмотрев на (довольно старый) исходный код poclbm, есть закомментированная строка, что создает SSL-соединение. Не уверен, что это причина, но я думаю, что он не поддерживает HTTPS в своей последней версии. Я поменял на DiabloMiner (мне пришлось добавить мой самоподписанный сертификат с помощью InstallCert.java инструмент)

Теперь я могу шахте по HTTPS. Следующий шаг-это бассейн...

+881
Kathy Grignot 12 апр. 2017 г., 13:35:46

В моем случае, это работает, что ./биткоин-Кинк -регтест остановка

+852
Bela 15 авг. 2014 г., 16:35:04

Я читала эту информацию о MEMPOOL: https://coinsutra.com/bitcoin-mempool/

Предположим, у меня есть транзакция, которая содержит определенное число записей (например: 300). Кроме того, предположим, что у меня есть 7 других сделок, каждая из которых имеет 50 записей.

Предположим, я предлагаю $1 к Шахтерску для каждой транзакции.

При трансляции проводки, он идет в MEMPOOL первый (так что Шахтер может забрать его для обработки)?

Это мое понимание того, что сделки не будет обработан немедленно, потому что плата слишком низкая.

Если это так, то можно ли bitcoind их собственный сервер, вытащить сделки, процесс это (или записи в него), а затем создать блок, который будет добавлен в блокчейн?

+838
Jan B 12 июн. 2015 г., 11:10:38

У меня есть электронный кошелек на localbitcoins.com (адрес 12pHFR5yv2KGqck5N8teb5MgoRtzAgLRn2).

Я сделал три передачи в него, в общей сложности 0.5 БТЦ + 0.5 БТЦ + 0.3031 БТЦ = 1.3031 БТЦ.

Blockchain.info не показывать мой адрес получения монет. Тем не менее, это показывает мой адрес отправки монет в несколько адресов после их получения https://blockchain.info/address/12pHFR5yv2KGqck5N8teb5MgoRtzAgLRn2:

enter image description here

Кто-то через мой интернет-кошелек в localbitcoins.com чтобы снять деньги?

+757
Anything iTech MV 18 дек. 2017 г., 23:56:39

getrawmempool это решение, как говорилось в редактирование вопроса и подтверждено комментарий в вопрос.

+675
user31361 17 мая 2018 г., 7:25:42

Я использую протокол Электрум для запроса истории биткоин-адрес с помощью блокчейна.адрес.get_history.

Все хорошо, я получаю данные ТХ за каждую сделку. Моя проблема заключается в том, что я не в состоянии выяснить способ, чтобы получить гонорар и детали сделки, за каждую полученную Техас. ( Я хочу использовать тот же протокол Stratum, если возможно )

Спасибо

+645
photohir 12 июн. 2011 г., 6:26:36

Любая биржа предоставляет API для вызова функции обратного вызова по каждой сделке?

Я хотел бы построить авто торговая платформа основывается на событие Tick, но вместо того, чтобы потянуть за цену, я хотел бы использовать нажимной механизм.

+617
wistru 29 авг. 2018 г., 23:30:40

Адрес 1UyoY... в настоящее время финансируется, так что сделки действительно проходят.

Если кошелек исход показывает вам 1UyoY.. как адрес получения, но не текущий баланс, то ваш кошелек не синхронизирован с сетью.

Если вы не можете сделать исход бумажник синхронизация с сетью правильно, можно попробовать экспорт семян фраза / закрытый ключ от исхода и импортировать его в другой программе бумажник.

Итог: биткоин сидят по этому адресу, поэтому, если у вас закрытый ключ на этот адрес, вам просто нужно найти программное обеспечение, которое будет должным образом синхронизировать с сетью, так что вы можете потратить монеты.

+612
vikkimoss 7 апр. 2013 г., 15:29:43

Чтобы быть строгим, ОП попросил отправить все монеты, которые @mschuett не ответил.

Ключевым моментом для этого является последний необязательный логический аргумент sendtoaddress ЭКП команды subtractfeefromamount. Как использовать это:

биткоин-Кинк walletpassphrase <пароль> <timeoutInSeconds>
биткоин-Кинк sendtoaddress <bitcoinaddress> `биткоин-CLI и метода getbalance` "" "" правда
+564
user1948 25 сент. 2018 г., 20:35:04

Есть несколько подходов, которые можно применить как в 3/18/13

  • Вы можете быть заинтересованы в низкой стоимости обучения протокола и связанных с ним технологий

  • Вы можете инвестировать в оборудовании, связанных с добычей полезных ископаемых

  • Вы можете инвестировать в BTC напрямую, обменивая наличные на несколько биткоинов, которые доступны.

Просто будьте уверены, чтобы ожидать, что любой из последних двух вариантов-это лотерея. Знания вам получить то, что вы можете держать с вами, как технология созревает.

Я затрону несколько пунктов:

Я хочу быть шахтером

"Добычи" монет-это не всегда выгодное положение. Это зависит от используемого вами оборудования, и часто время, которые вы объединитесь в бассейн.

Об оборудовании: процессор и GPU были заменены Плис нормальные шахтеры. Если вы хотите достичь более 0.000 х БТЦ, то вам нужно инвестировать в ПЛИС, и вскоре, чип ASIC для майнинга. Ваша новая видеокарта не пропадут, вы можете принять участие в голосовании, в vanitygen бассейн, или бассейн litcoin поколения. Обратите внимание, что лайткоинов-это способ диверсификации рисков в криптовалюте и не означает, что она добьется величия биткоин производства монет.

Про бассейн: каждый бассейн позволит вам даже из вашего заработка за время. @Мені написал очень хороший документ на эту тему. Если вы новичок в Bitcoin, читайте все его посты.

Я хочу сделать свой собственный бассейн

Это интересная тема, так как я тоже хотел сделать то же самое. Получается, что математика и "hackability" в бассейн не прямолинейна и, что вполне возможно, вы можете обанкротиться работает один (или все, что вы вкладываете). Убедитесь, что вы защитить себя от ППС пулов вы бежите один. Я думаю, что сейчас самое безопасное это "двойной геометрической" для оператора и клиента. Посмотреть техническое описание @мені за Подробнее

Я хочу просто узнать о технологии

Самому непосвященному может работать "bitcoind" со своего компьютера с параметром ген=1 установить так, чтобы он использует центральный процессор, чтобы хэш. Это единственный жизнеспособный на "тест сети", где монеты не имеют никакой ценности. Чтобы узнать этот способ, просто запустить Bitcoind с -ген=1 и -тестовом режиме набора в командной строке.

С другой стороны, если вы хотите, чтобы программно сделать шаги, которые вы перечислили, я предлагаю вам прочитать исходный код некоторых на Python или C++ клиентов. Это может быть хорошая идея, чтобы иметь свой список вопрос на язык, что вы знакомы с кода ищете, возможно, уже будет написано, или даже оптимизирован для работы с низким уровнем оптимизации в виду.

Я хочу инвестировать

Существует несколько способов приобретения БТЦ. А именно MtGox и Coinlab представлены двух ведущих торговых площадках. Я предлагаю глядя на требования там купить купить монеты по лучшей цене.

+533
Mark Hula 21 авг. 2017 г., 19:31:02

Тестовом режиме, не является самостоятельной тестовой среде. Это настоящий распределенный блок цепи, как основной цепи. Только, потому что мало добычи в тестовом режиме, сложность довольно низкая.

Так что да, вы можете создавать тестовые монеты в тестовом режиме.

Кроме этого, можно создать собственный автономный тестовой среде, но это может потребовать от вас, чтобы изменить исходный код. В частности, вам нужно будет изменить (жестко) генезис блока и скорее всего удален семена, потому что вы не хотите заморачиваться mainnet или пользователям тестовом режиме с вашим собственным блоков.

+322
Marie Olson 25 сент. 2010 г., 14:54:43

Если мы возьмем, например, хлеб кошелек.

Есть одна мнемосхема, чтобы помнить, что закрытый ключ?

Но когда вы используете приложение, ваш публичный адрес постоянно меняется.

Так что более одного публичного ключа?

Как это возможно?

+318
stoutyhk 22 апр. 2010 г., 6:13:28

Я новичок в Bitcoin. Я хочу реализовать платежной системы Bitcoin. Я с помощью API blockcypher по. Допустим, у нас есть HD-кошелька "myhdwallet" и мы проехали 2 адрес, используя xpub для моего HD-кошелька. (адрес=> М/0/1 ,Б адрес=>М/0/2,...). Я хочу создать транзакцию и отправить биткоины с адресов мой кошелек в адрес С. Как я могу это сделать? Я был успешным в отправки Bitcoin с помощью закрытых ключей. Но здесь я не имею никакого закрытого ключа для организаций. Я только название кошелек и xpub. Как я могу сделать этот API, используя blockcypher это?

+143
user176406 9 авг. 2016 г., 2:34:42
На вопросы, которые касаются законов, практики и ситуации в Соединенном Королевстве.
+97
thethaotamchinh 8 янв. 2015 г., 0:56:42

Показать вопросы с тегом