Отправка денег с адреса на адрес на биткойне с помощью PHP

Я программирую серверную часть для решения для электронной коммерции, Bitcoind API дает мне один из способов отправки денег на биткойн-адрес: sendfrom <fromaccount> <tobitcoinaddress> <amount>

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

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


person Cornezuelo del Centeno    schedule 25.02.2015    source источник


Ответы (1)


Отметьте getaccount <bitcoinaddress>: «Возвращает учетную запись, связанную с данным адресом». Вы даете ему биткойн-адрес, получаете соответствующую учетную запись и затем можете использовать эту учетную запись для sendfrom.

Однако из соображений безопасности я не советую отправлять платежи напрямую из PHP, работающего на веб-сервере. Вы можете захотеть ввести хотя бы один дополнительный уровень проверки перед фактической оплатой, и этот уровень, вероятно, работает на отдельной машине. Например, пусть PHP записывает платежные поручения в базу данных для другого приложения в другом месте для опроса и обработки. Оба приложения будут иметь доступ к базе данных, но прямой связи между ними не будет; и сторона PHP вообще не будет (должна) авторизоваться для доступа к кошельку BTC. Также рассмотрите возможность использования горячих и холодных кошельков.

person JimmyB    schedule 25.02.2015
comment
Кажется, я знаю, что я сделаю, отправив деньги с адреса на адрес, связанный со счетом CASHOUT командой move. Это не будет взимать никаких комиссий и не доставит мне никаких проблем. Затем для вывода всех денег на кошелек вне сервера я буду использовать sendfrom CASHOUT <externalbtcaddress> <amount>. Единственная проблема, которая у меня сейчас есть, это то, что sendfrom я могу отправить деньги, даже если на счету недостаточно средств для оплаты сборов, но другой адрес в кошельке может. Это поставит учетную запись CASHOUT на красные цифры, а биткойны будут брать комиссию с другого адреса... Но это уже другой вопрос ;) - person Cornezuelo del Centeno; 25.02.2015
comment
Вы уже видели en.bitcoin.it/wiki/Accounts_explained#Sending? В нем говорится, что невозможно попросить Биткойн создать платежную транзакцию с использованием монет, полученных от этих ранее полученных транзакций, без использования API необработанных транзакций. Так что, по сути, вы не должны отправлять с одного конкретного адреса, а просто позволить биткойнам решить, сколько BTC из каких предыдущих транзакций отправить. - person JimmyB; 25.02.2015
comment
Это не имеет смысла, когда немного вниз после этого вы можете прочитать: - The check for sufficient funds is done before paying transaction fees (if any); if a transaction fee is needed, and there are sufficient funds in the wallet, then the transaction fee will be paid and debited from the account. For example, if account 'foo' contains 10 bitcoins, you sendfrom foo 15VjRaDX9zpbA8LVnbrCAFzrVzN7ixHNsC 10, and the transaction costs 0.01, 'foo's balance will be -0.01 bitcoins. ¿Разве это не означает, что я могу отправлять с определенных аккаунтов? - person Cornezuelo del Centeno; 25.02.2015
comment
Да, вы можете отправлять с определенного аккаунта. Учетная запись, однако, является чисто виртуальным видом на ваш кошелек. Вот почему баланс аккаунта может быть отрицательным; ваш кошелек, однако, не может. Я нашел введение на этой странице весьма иллюстрирующим: бумажник — это хранилище банка; монеты депонируются и выводятся, индивидуальные счета могут стать отрицательными. Клиент не может запросить получение именно тех монет, которые он внес; ему будет предоставлена ​​смесь монет из хранилища, которые были депонированы другими клиентами. Счета вашего кошелька предназначены только для вашей собственной бухгалтерии. - person JimmyB; 25.02.2015
comment
Представьте, что вы получаете 5 BTC на адрес A плюс 5 BTC на адрес B. Затем вы отправляете 8 BTC на какой-то другой адрес. Под вашим контролем нет ни одного адреса с балансом 8 или более. Тем не менее, биткойн позволит вам перевести 8 BTC, возможно, взяв 5 BTC из предыдущей транзакции на адрес A и еще 3 из предыдущей транзакции на адрес B. Считаются ли A и B одной и той же учетной записью или нет, не имеет значения. на которые отправляются монеты. - person JimmyB; 25.02.2015