Биткойн API не зависит от работающего демона Биткойн? - PullRequest
3 голосов
/ 06 августа 2011

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

  1. Создать новый биткойн-адрес (getnewaddress($account))
  2. Получать монеты по этому адресу;определить, сколько было получено (getreceivedbyaccount($account, $minconf=1))
  3. Отправить монеты на адрес (sendfrom($fromaccount, $tobitcoinaddress, $amount, $minconf=1, $comment="", $comment-to=""))

Все эти функции существуют в существующем json-rpc php клиент, но все они зависят от работающего на сервере демона биткойнов.

Я тоже прочитал материал "lazy api", но я бы не хотел зависеть от другого сервисаданные блока или отправка биткойнов.

tl; dr: мне нужна версия биткойна php api, которая не требует запуска демона, с минимумом функций, описанных выше.

Ответы [ 6 ]

1 голос
/ 17 декабря 2014

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

Когда вы ищете: создать, отправить, получить - это значит, что вам понадобится сервис, на котором уже есть этот хост:

Coinkite может быть хорошим вариантом, так как большинство операций с биткойнами можно выполнять с помощью API:

  • Отправка и запрос биткойнов по электронной почте, смс или адрес биткойнов

  • Создание открытых ключей (HD)

  • Проверка баланса и получение уведомлений

  • Безопасное хранение биткойнов в учетных записях HSM или Multi-signature

  • Создание ваучеров и бумажных кошельков (с опубликованным закрытым ключом)

  • Создание платежных адресов P2SH, вывод средств через мульти-сигн M-of-N.

  • Импорт и очистка личных ключей

https://coinkite.com/faq/developers

1 голос
/ 21 июня 2013

Если вы хотите генерировать только биткойн-адрес и закрытый ключ, попробуйте:

https://github.com/zamgo/PHPCoinAddress

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

из bitseed.xf2.org или из списка жестко закодированных пиров в исходном коде chainparams.cpp: https://en.bitcoin.it/wiki/Satoshi_Client_Node_Discovery

1 голос
/ 05 января 2013

TL; DR; : не работает какой-либо биткойн-клиент и , не доверяя третьей стороне, будет невозможно.

Хотя можно доверять третьей стороне и сообщать вам остаток средств на счете, вы должны доверять третьей стороне для обработки закрытых ключей, необходимых для подписания транзакций, как только вы используете getnewaddress или sendfrom что, вероятно, не то, что вы хотите сделать.

Насколько я понимаю, возможным минимальным решением было бы использование третьей стороны, такой как http://blockchain.info,, для отслеживания остатков (прочитайте расходуемое outputs, которое вы можете потребовать при отправке транзакции) и использовать службу уведомлений, чтобы сообщить вам о входящих транзакциях (некоторые из них перечислены здесь в качестве альтернативы https://en.bitcoin.it/wiki/BitcoinNotify).

Теперь, чтобы иметь возможность получать транзакции, все, что вам нужно, это создать новый адрес для отображения пользователей на вашем веб-сайте. Создать такой адрес в PHP не должно быть сложно, достаточно взглянуть на wiki .

Теперь для отправляющей части это будет намного сложнее, так как включает:

  • сбор выводов;
  • требуя их путем предоставления соответствующих подписей;
  • создание новых выходов по нужным адресам;
  • объединение всего в транзакции и ее сериализация в соответствии со спецификациями протокола P2P ;
  • подключение к P2P-сети и отправка транзакции равноправным узлам.

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

1 голос
/ 23 августа 2012

Blockchain.info предоставляет API-интерфейс Bitcoind JSON, совместимый с RPC.

http://blockchain.info/api/json_rpc_api

0 голосов
/ 30 октября 2014

Вы можете использовать Open Source GoUrl.io Bitcoin-PHP Платежная библиотека -

https://github.com/cryptoapi/Payment-Gateway

    <?
        require_once( "cryptobox.class.php" );

        $options = array( 
        "private_key" => "",        // private key from gourl.io
        "orderID"     => "your_product1_or_signuppage1_etc",
        "amountUSD"   => 2          // 2 USD
        );  

        // Initialise Payment Class
        $box1 = new Cryptobox ($options);

        // Display Payment Box or successful payment result   
        $paymentbox = $box1->display_cryptobox();

        // A. Process Received Payment
        if ($box1->is_paid()) 
        { 
            // Your code here to handle a successful cryptocoin payment
            // ...
        }  
        else $message .= "The payment has not been made yet";
    ?>
    <!DOCTYPE html>
    <html><head></head>
    <body>
    <?= $paymentbox ?>
    <?= $message ?>
    </body>
    </html>
0 голосов
/ 11 августа 2011

В настоящее время такой функции не существует.Я слышал, что биткойн портируется на нативный PHP или Java-апплет, который может работать в браузере, но нет биткойна без демона где-то - хотя вы, вероятно, могли бы управлять этими основными функциями с помощью MtGoxMerchant API.

В качестве альтернативы, если у вас дома достаточно надежная настройка, вы можете выделить риг для биткойнда и переадресации соответствующего порта в настройках вашего маршрутизатора.Единственная причина, по которой вы обычно не можете размещать сайты в своем домашнем интернете, заключается в том, что интернет-провайдеры блокируют порт 80;они не блокируют 8337 (и если они это делают, то все равно настраиваются).PHP API должен иметь возможность подключаться к биткойну точно так же через сеть, как если бы он находился в одном окне.

...