Я установил демоны Bitcoin, Litecoin и Dogecoin на один и тот же сервер. Все три из них запущены и работают, но демон Биткойн ничего не отвечает, когда я запускаю bitcoind getinfo
. Это могут быть проблемы с сетью или что-то в этом роде. Я установил PHP на тот же сервер и создал index.php
файл в /var/www/
папке.
Содержимое index.php
файла:
<?php
include_once('Bitcoin.php');
include_once('jsonRPCClient.php');
$dogecoin = new jsonRPCClient('http://user:pass@localhost:8332/');
print_r($dogecoin->getinfo());
?>
Содержание биткойн.php:
<?php
class Bitcoin (
// @var string
private $username;
// @var string
private @password;
// @var string
private $url;
// @var string
private $id;
public function __construct($url,$username,$password)
{
$this->url=$url;
$this->username = $username;
$this->password = $password;
$this->id = 1;
}
public function __call($method,$params)
{
$params = array_values($params);
$request = json_encode(array(
'method' =>strtolower($method),
'params' => $params,
'id' => $this-> id));
$curl = curl_init();
curl_setopt($curl,CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, Array("Content type:application/json"));
curl_setopt($curl, CURLOPT_URL, $this->url);
curl_setopt($curl, CURLOPT_USERPWD, $this->username.":".$this->password);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $request);
$response = curl_exec($curl);
curl_close($curl);
if(!$resposne)
{
throw new Exception('Unable to connect to '.$this->url, 0);
}
$response = json_decode($response,true);
}
Then there are a condition to throw a different error upon a different situation.
}
Привет?
Хорошо, я искал по всему Интернету учебные пособия о том, «как интегрировать биткойн-демон с php». Я нашел много, и ни один из них не помог мне заставить его работать безупречно, некоторые из них выдавали неожиданные и странные ошибки после завершения 90%, а некоторые из них достаточно хороши, чтобы выдать ошибку только при запуске, что сэкономило мое время и усилия. Теперь, когда я сделал то, что искал, почему бы не создать пошаговое руководство, чтобы помочь другим участникам. Итак, приступим.
Прежде чем мы начнем, вы должны установить tmux, который поможет вам сохранить вашу работу, даже если вы отключены от vps. Чтобы установить tmux:
sudo apt-get install tmux
чтобы запустить tmux, просто введите tmux, а чтобы вернуться на экран mai, нажмите ctrl b, а затем d, чтобы снова восстановить сеанс, введите tmux attach.
Я ожидаю, что у вас есть Ubuntu 12.x или новее, потому что это то, что я использовал для установки. Войдите в свой VPS или терминал вашего компьютера и установите свойства программного обеспечения Python, введя следующую команду:
sudo apt-get install python-software-properties
затем добавьте репозиторий ppa:bitcoin/bitcoin, введя следующую команду
sudo add-apt-repository ppa:bitcoin/bitcoin
В моем случае это не сработало и выдало ошибку о том, что команда add-apt-repository не найдена. В более поздних версиях Ubuntu эта команда не находится в пакете python-software-properties, как в предыдущих версиях, но доступна в software-properties-common. Поэтому я установил его, выполнив следующие команды:
sudo aptitude install software-properties-common
Чтобы узнать, в каком пакете находится искомая команда, вам поможет следующее:
sudo apt-fille update
К сожалению, в моем случае это также не было установлено, поэтому я установил его, выполнив следующую команду:
apt-get install apt-file
Теперь я получил сообщение «Файл обновлен»
Теперь запустите sudo apt-file search add-apt-repository.
Вам будет предложено подтвердить эту установку, нажмите клавишу Enter для подтверждения.
Теперь беги
sudo aptitude update
а затем sudo aptitude установить биткойн
Создайте новый каталог, набрав:
mkdir ~/.bitcoin
cd ~/.bitcoin
Создайте внутри этого каталога новый файл с именем bitcoin.conf, набрав: nano bitcoin.conf
вставьте следующий код в текстовый файл:
server=1
daemon=1
rpcuser=any_username
rpcpassword=any_password
Выйдите, нажав ctrl+x, чтобы подтвердить изменения, нажмите Y, а затем нажмите клавишу возврата. Запустите биткойн-демон, набрав:
bitcoind
Биткойн-демон теперь установлен и запущен, вы можете проверить его, выполнив следующую команду
bitcoind getinfo
Теперь мы установим apache и php на наш сервер.
Чтобы установить apache, мы запустим следующий код:
sudo apt-get install apache2
как только Apache будет установлен, проверьте его, введя свой IP-адрес в браузере, он скажет, что он работает!
теперь мы установим php с помощью следующей команды:
sudo apt-get install php5 libapache2-mod-php5
теперь перейдите в папку var/www и загрузите jsonRPCClient.php с помощью следующей команды:
wget http://pmtocoins.com/JSON-RPC_PHP_light.zip
после загрузки разархивируйте его, набрав: unzip JSON*.zip
нет перехода в каталог по: cd json*/includes
и переместите jsonRPCClient.php в папку www
теперь создайте новый файл index.php в папке www со следующим кодом
<?php
include_once('jsonRPCClient.php');
$bitcoin = new jsonRPCClient('http://your_username:your_password@127.0.0.1:8332/');
print_r($bitcoin->getinfo());
?>
и вы сделали переход на свой IP-адрес в браузере, например, 161.232.12.1/index.php
Вы можете посмотреть список вызовов API здесь: https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list
. Вы можете использовать библиотеку платежей Bitcoin-PHP с открытым исходным кодом -
https://github.com/cryptoapi/Платежный шлюз
<?
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>
Хан Шахрукх