Jordan Mack [ARCHIVE] on Nostr: š
Original date posted:2011-12-17 šļø Summary of this message: The scalability ...
š
Original date posted:2011-12-17
šļø Summary of this message: The scalability of broadcast messages and the resources required to sync and verify the blockchain are two problems that need to be solved. Three distinct groups of clients are miners, full, and lite. To address scalability, there could be three separate modes of operation. Mining nodes would handle the brunt of the barrage of messages, full clients would only need new block data and new transactions that pertain to them, and lite clients would connect to a trusted full client over an encrypted connection.
š Original message:theymos' full node and lite node write up got me thinking.
There are two problems here that we are trying to solve:
- The scalability of broadcast messages.
- The resources required to sync and verify the block chain.
I see three distinct groups of clients:
- Miners (dedicated servers & desktops)
- Full (desktops)
- Lite (mobile devices)
To address scalability of broadcasting, there could be three separate
modes of operation (or client types). Mining nodes would retain the
complete block chain, and share all messages between other mining nodes.
Full nodes would retain the complete block chain, receive new block
information from mining nodes, and share block data between each other.
Lite clients would not contain the block chain, or any broadcast
messages, and would query against a full client for all actions.
Mining nodes would handle the brunt of the barrage of messages. All
block and transaction messages would have to be broadcast across all
mining nodes. This would be essentially the same as all clients
currently operate today.
A full client would be one step down from a mining client. They only
need new block data, and new transactions that pertain to them (for
instant notification). All other broadcast data is irrelevant to them.
They would get new block data from connections to mining nodes, or from
other peer nodes. The transaction submission could be sent directly to a
connected mining node, or bounced through other connected full nodes,
with a random number hops. This would disassociate the IP from the
transaction, similarly to Tor.
To address the need for instant transaction notification, without
broadcasting to to everyone, notification messages would be sent
directly from one full client to the other. This is where aliases come
in. When an alias is resolved, it includes both a Bitcoin address, and a
list of IPs to notify of the transaction. This reveals the IP of the
sender and receiver to each other. If the sender or receiver wishes to
remain anonymous, then they could opt out of notification, and wait for
the transaction to appear in the block chain.
A lite client would connect to a "trusted" full client over an encrypted
connection. This would essentially function as a remote control to a
full client, and allow a user to send, receive, and confirm normally,
but without the overhead. A full client could reside on the home
computer or server, which is owned by the user. A hosted wallet could
also be used just as easily.
I don't like the idea of a header only client, unless this is just an
interim action until the full block chain is downloaded in the
background. Development of these types of clients is probably
inevitable, but I believe that this breaks the most fundamental aspects
of Bitcoin's security model. If a client has only headers, it cannot do
full verification, and it is trusting the data from random anonymous peers.
Published at
2023-06-07 02:51:17Event JSON
{
"id": "edc0a1f130fdfeca440fdbcf9fedd7e28044fc23010e5412cd56c6fefcce5a56",
"pubkey": "3900ae5aebfcedc10896ff09261ba18b16c6812fe8d8bea34333d56fdb4826d0",
"created_at": 1686106277,
"kind": 1,
"tags": [
[
"e",
"4af0205fae641367dcfd78e02a7a0b6f75f880a1f702affe5d70f7b792eb8207",
"",
"root"
],
[
"e",
"73ea2f0432f7ea39b97bd707dd120c102df7efd7468675961c67a75b3f02525e",
"",
"reply"
],
[
"p",
"b25e10e25d470d9b215521b50da0dfe7a209bec7fedeb53860c3e180ffdc8c11"
]
],
"content": "š
Original date posted:2011-12-17\nšļø Summary of this message: The scalability of broadcast messages and the resources required to sync and verify the blockchain are two problems that need to be solved. Three distinct groups of clients are miners, full, and lite. To address scalability, there could be three separate modes of operation. Mining nodes would handle the brunt of the barrage of messages, full clients would only need new block data and new transactions that pertain to them, and lite clients would connect to a trusted full client over an encrypted connection.\nš Original message:theymos' full node and lite node write up got me thinking.\n\nThere are two problems here that we are trying to solve:\n- The scalability of broadcast messages.\n- The resources required to sync and verify the block chain.\n\nI see three distinct groups of clients:\n- Miners (dedicated servers \u0026 desktops)\n- Full (desktops)\n- Lite (mobile devices)\n\nTo address scalability of broadcasting, there could be three separate \nmodes of operation (or client types). Mining nodes would retain the \ncomplete block chain, and share all messages between other mining nodes. \nFull nodes would retain the complete block chain, receive new block \ninformation from mining nodes, and share block data between each other. \nLite clients would not contain the block chain, or any broadcast \nmessages, and would query against a full client for all actions.\n\nMining nodes would handle the brunt of the barrage of messages. All \nblock and transaction messages would have to be broadcast across all \nmining nodes. This would be essentially the same as all clients \ncurrently operate today.\n\nA full client would be one step down from a mining client. They only \nneed new block data, and new transactions that pertain to them (for \ninstant notification). All other broadcast data is irrelevant to them. \nThey would get new block data from connections to mining nodes, or from \nother peer nodes. The transaction submission could be sent directly to a \nconnected mining node, or bounced through other connected full nodes, \nwith a random number hops. This would disassociate the IP from the \ntransaction, similarly to Tor.\n\nTo address the need for instant transaction notification, without \nbroadcasting to to everyone, notification messages would be sent \ndirectly from one full client to the other. This is where aliases come \nin. When an alias is resolved, it includes both a Bitcoin address, and a \nlist of IPs to notify of the transaction. This reveals the IP of the \nsender and receiver to each other. If the sender or receiver wishes to \nremain anonymous, then they could opt out of notification, and wait for \nthe transaction to appear in the block chain.\n\nA lite client would connect to a \"trusted\" full client over an encrypted \nconnection. This would essentially function as a remote control to a \nfull client, and allow a user to send, receive, and confirm normally, \nbut without the overhead. A full client could reside on the home \ncomputer or server, which is owned by the user. A hosted wallet could \nalso be used just as easily.\n\nI don't like the idea of a header only client, unless this is just an \ninterim action until the full block chain is downloaded in the \nbackground. Development of these types of clients is probably \ninevitable, but I believe that this breaks the most fundamental aspects \nof Bitcoin's security model. If a client has only headers, it cannot do \nfull verification, and it is trusting the data from random anonymous peers.",
"sig": "16bb16e51536a181ccb0c39dacfe0fcbce65ecd12191177c8f849729251247365085105351e560eff85a58299dac276a2575d7e46dde1f5cd5721c01d7de2f7e"
}