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