Я разработчик с большим опытом работы в C ++, Java и Python. Я знаком с BitcoinJ и аналогичными структурами, которые помогают взаимодействовать с сетью Bitcoin.
Я пытаюсь принять Bitcoin платежи за проект, и я хотел бы избежать использования сторонних услуг, такие как Blockchain платежного API, Coinbase и BitPay.
Я имею в виду работы с "btcd" или "Bitcoinj", У меня есть прототип, который использует PostgresFullPrunedBlockStore. Он отлично работает, за исключением, когда услуга вниз на некоторое время. Он пропускает транзакцию и синхронизация blockchain, кажется, не поможет. Я в конечном итоге не получить уведомление о "Соответствующий" транзакциям, когда моя служба была вниз, несмотря на синхронизацию blockchain.
Я понимаю, что я могу легко взаимодействовать с "bitcoind" с помощью RPC и добавлять новые адреса, но я не хочу полагаться на bitcoind для этого. Я имею в виду потенциальных проблем масштабируемости.
Как вы думаете, будет правильный подход здесь? Я надеюсь, придумать общее решение, так что я могу с открытым исходным кодом и его другие люди могут интегрировать его в свои собственные системы.
У меня есть одно потенциальное решение в виду. Дайте мне знать, если вы видите какие-либо проблемы с этим.
Код:
1- Присоединяйся к сети, ждать новых блоков от сверстников
2- Петля на неопределенное время и ждать новых блоков от сверстников. Получить блок N:
2а Посмотрите на блок, проверьте операции, включенные в блок, они являются?
2b- Если они релевантны, обратите внимание неизрасходованный производства и хранения его (делая предположение, что его входы являются действительными, если они не были, не будут включены в блок и размножают? Является ли это безопасное предположение сделать? )
2c- стреловидности адрес и отправить его в холодный бумажник
2D- Увеличивают баланс пользователя
2- Петля на неопределенное время и ждать новых блоков от сверстников. Получить блок N:
2а Посмотрите на блок, проверьте операции, включенные в блок, они являются?
2b- Если они релевантны, обратите внимание неизрасходованный производства и хранения его (делая предположение, что его входы являются действительными, если они не были, не будут включены в блок и размножают? Является ли это безопасное предположение сделать? )
2c- стреловидности адрес и отправить его в холодный бумажник
2D- Увеличивают баланс пользователя