Распространены ли «неподтвержденные транзакции» пула памяти блокчейна по узлам? - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь реализовать блокчейн на python, у меня уже есть цепной код с возможностью создания транзакций и блоков (и всего криптографического). У меня есть пул локальной памяти для неподтвержденных транзакций. Предполагается, что эти транзакции будут использоваться совместно с другими узлами?

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

Другой вопрос: Допустим, у меня есть 0,5 этой монеты, я хочу передать их господину X. Я выполняю свою транзакцию, и узел проверяет, что в текущей цепочке у меня есть 0,5 монеты, поэтому я подписываю свою транзакцию и отправляю ее в эту предполагаемую неподтвержденную транзакцию. пул (упомяните, что те не в реальной цепи). Затем, скажем, я совершаю еще одну транзакцию 0,5, прежде чем эта транзакция будет подтверждена. Это работа процесса создания блока, чтобы проверить, что я получил 0,5 для первой транзакции, но я не для второй? Или это работа процесса создания транзакции? Если это второе, то неподтвержденные транзакции должны участвовать в подсчете реальных денег ... Вы видите мой беспорядок?

1 Ответ

1 голос
/ 17 мая 2019

Распространены ли «неподтвержденные транзакции» пула памяти блокчейна по узлам?

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

На ваш второй вопрос:

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

...