Трансляция биткойн-транзакций

Меня немного смущает трансляция транзакций в Интернете. Как майнер узнает, что транзакция транслировалась? Интернет-сеть очень большая. Или как мой биткойн-клиент собирает передаваемые блоки?

Ответы (2)

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

Под капотом у Биткойна есть то, что называется json-rpc . Это используется в программном обеспечении и с другим программным обеспечением, которое вы хотите интегрировать в биткойн, для отправки и получения платежей, для создания адресов кошельков и для получения сетевых данных. Bitcoin Core и любое другое программное обеспечение, которое хранит полную копию блокчейна (кошельки spv, такие как multi-bit, mycelium и биткойн-кошелек Android, имеют небольшой вес и не помещают 60 ГБ данных транзакций блокчейна на ваш телефон).

Они общаются друг с другом через порт 8333, а биткойн-транзакции пересылаются друг другу, транслируются. Если на вашем компьютере, на котором работает биткойн-ядро, установлено специальное программное обеспечение, вы можете написать сценарий, чтобы ваше приложение общалось с биткойнами, чтобы сначала получить входные данные, затем создать необработанную транзакцию, подписать транзакцию с помощью закрытого ключа, который содержит расходуемые входные данные, а затем транслировать его. Глядя на процесс, мы видим, что подписанная транзакция возвращает массив Json с подписанными данными в шестнадцатеричном кодировании и код результата (большинство скриптов Bitcoin Op_Code возвращает либо 0, либо 1 на уровне протокола, чтобы обозначить неудачу (0) или успех (1) , Затем программное обеспечение отправляет данные (транслирует их) подключенным одноранговым узлам через порт 8333 с этим подписанным шестнадцатеричным значением. Затем протокол возвращает либо идентификатор транзакции, либо ошибку, опять же как объект Json.