## Since Bitcoin has no central system, where do network request go?

4

I heard bitcoin and other cryptocurrencies have no central system.

BUT where do you send the transaction id?

There must be a server to send the data to!?

It probably is a simple question but, that's the thing I never understood on bitcoin and cryptocurrency.

5

Bitcoin is a peer-to-peer gossip flood network. Whenever a Bitcoin participant creates a transaction, their wallet software submits it to its peer nodes. These peers then relay it to their peers in turn. The transaction floods through the network and reaches most nodes. Eventually, the transaction is included in a block which makes the transaction part of the committed history of the network. Blocks have propagation guarantees, because the blockchain is the mechanism for nodes to converge on a globally shared state. Now, every node is guaranteed to get the transaction since they will get the block.

So, each transaction originates from the sender's node, and eventually, every participant's node will have a copy of each confirmed transaction.

1At a very high level -- you want miners to get your transaction because you want it to be included in a block. Miners want to get your transaction because they will get the transaction fee if they include it in a block. Given two parties with internet access who each have an incentive to exchange data with the other, there is nothing even remotely difficult about making the exchange work. – David Schwartz – 2020-08-06T03:57:20.573

So where are the APi’s or endpoints to connect to it? – JohnAndrews – 2021-02-20T16:45:13.487

1

Each full Bitcoin node has what is known as "mempool". mempool is where transactions are stored in preparation for propagation into a proposed block during the mining process.

It's somewhat counter-intuitive but each node has it's own mempool and transactions (as they are posted by BTC users), will be propagated throughout the network and be stored in many mempools globally, until they are eventually "mined", i.e. a SHA256(proposed_block || nonce) < target.