Отправка с адреса на адрес в биткойнах

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

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

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

Ответы (2)

Чтобы найти выходы транзакций, которые вы можете потратить

listunspent 0 99999999999 "[\"addressYouWantToSpend\"]"

Затем создайте TX

createrawtransaction "[{\"txid\":\"txIdToSpend\",\"vout\":n}]" "{\"destinationAddress\":amountToSend, \"changeAddress\":changeAmount}"

Затем подпишите тх

signrawtransaction <hexStringProvidedBycreaterawtransaction>

Затем опубликуйте tx

sendrawtransaction <hexStringProvidedBysignrawtransaction>
Разве я не узнаю комиссию после совершения транзакции? Это не позволит мне проверить, достаточно ли на счету средств для оплаты комиссионных, сколько он хочет отправить.
плата = значение utxo - сумма для отправки - сумма изменения. Таким образом, вы неявно определяете комиссию, когда указываете changeAmount. Не после совершения сделки, а до.
Просто для ясности: некоторые другие варианты создания транзакций автоматически устанавливают разумную комиссию. Здесь вы должны выбрать комиссию самостоятельно.

Здесь у вас есть несколько вариантов. Вы можете создать необработанную транзакцию, как обсуждалось в другом ответе, но это, вероятно, сложнее всего и проще всего сделать неправильно (убедитесь, что ваши входы и выходы совпадают!)

Другим вариантом может быть создание однозначного сопоставления адресов с учетными записями.

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

Я также хотел бы избежать необработанных транзакций. Я думал об использовании учетной записи с именем CASHOUTи с moveперемещением биткойнов с адреса заказа на любой из CASHOUTадресов, как только я отправлю продукт. Затем я бы добавил, paytxfee=<amt>чтобы bitcoin.confзаранее знать, сколько BTC я собираюсь заплатить, и учитывать эти комиссии при обналичивании на адрес за пределами сервера, но я не уверен, что это сработает. .