который указывает правильное общее количество полученных биткойнов, blockchan.info или bitcoind [закрыто]

Я пытаюсь увидеть, сколько биткойнов я получил с помощью одного метода bitcoind, getreceivedbyaddress с указанием определенного адреса, и, узнав количество биткойнов, я вскоре понял, что такие службы, как обозреватель блоков, blockchain.info или blockcypher, указывают разные количество биткойнов. Интересно, что когда я указывал другой адрес, то и сервисы bitcoind, и block explorer указывали одинаковую сумму.

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

Так что же именно правильно и надежно?

Ответы (1)

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

Важный момент: биткойн не отслеживает «остатки на счетах», а система отслеживает «неизрасходованные выходы (UTXO)». Чтобы найти баланс для адреса, обозревателю блоков необходимо суммировать все текущие UTXO, связанные с этим адресом.

Таким образом, источник ошибки может заключаться в том, как конкретный обозреватель блоков выполняет эту операцию. Blockchain.info, например, сообщит сумму всех входов, которые когда-либо были оплачены на определенный адрес. Таким образом, если у вас было 0,1 биткойна, и вы неоднократно тратили его на один и тот же адрес 30 раз, blockchain.info, вероятно, сообщит об этом как о получении 3 биткойнов (пожизненно). Это может быть интересной статистикой, но она не обязательно имеет отношение к вашему вопросу о разрешении клиентских депозитов.

То есть вы имеете в виду, что даже если я несколько раз отправлю биткойны обратно на свой адрес, биткойн не будет работать так, как это делают веб-сайты обозревателя блоков?
Я только хотел предоставить потенциальный пример того, как один веб-сайт обозревателя блоков может интерпретировать и отображать данные блокчейна иначе, чем какой-либо другой веб-сайт обозревателя блоков. Важный момент: существует одна абсолютная запись о произошедших транзакциях, и это блокчейн. Вы можете запустить узел, чтобы у вас была собственная копия, а затем использовать эти данные для определения баланса адреса (путем суммирования UTXO). Вам не нужно (и не следует) полагаться на сторонний обозреватель блоков для получения этой информации (они могут солгать вам, или ошибка в их системе может представить неверные данные и т. д.).