Difference between revisions of "Peer-to-Peer Network Architecture"
AlexMackay (talk | contribs) |
AlexMackay (talk | contribs) |
||
Line 1: | Line 1: | ||
[[Image:P2P-network.svg|thumb|200px|A''' peer-to-peer (P2P) network''' in which interconnected nodes ("peers") share resources amongst each other without the use of a centralized administrative system<ref>{{Citation|last=Galuba|first=Wojciech|title=Peer-to-Peer System|date=2009|encyclopedia=Encyclopedia of Database Systems|pages=2081–2082|editor-last=LIU|editor-first=LING|publisher=Springer US|language=en|doi=10.1007/978-0-387-39940-9_1230|isbn=9780387399409|last2=Girdzijauskas|first2=Sarunas|editor2-last=ÖZSU|editor2-first=M. TAMER}}</ref>]] | [[Image:P2P-network.svg|thumb|200px|A''' peer-to-peer (P2P) network''' in which interconnected nodes ("peers") share resources amongst each other without the use of a centralized administrative system<ref>{{Citation|last=Galuba|first=Wojciech|title=Peer-to-Peer System|date=2009|encyclopedia=Encyclopedia of Database Systems|pages=2081–2082|editor-last=LIU|editor-first=LING|publisher=Springer US|language=en|doi=10.1007/978-0-387-39940-9_1230|isbn=9780387399409|last2=Girdzijauskas|first2=Sarunas|editor2-last=ÖZSU|editor2-first=M. TAMER}}</ref>]] | ||
[[Image:Server-based-network.svg|thumb|200px|A network based on the '''[[client-server model]]''', where individual [[Client (computing)|''clients'']] request services and resources from centralized [[server (computing)|servers]]]] | [[Image:Server-based-network.svg|thumb|200px|A network based on the '''[[client-server model]]''', where individual [[Client (computing)|''clients'']] request services and resources from centralized [[server (computing)|servers]]]] | ||
+ | |||
+ | Peer-to-Peer computing or networking is a distributed application network architecture that spreads workload between peers. Peers are equally privileged, participate equally in the application and are said to form a peer-to-peer network of nodes. | ||
==Bitcoin as a Peer-to-Peer Network== | ==Bitcoin as a Peer-to-Peer Network== | ||
− | + | Formally, Bitcoin is a peer-to-peer network built on top of the internet. In the early days of Bitcoin the network had a flat topological structure, where users were capable of running full nodes which performed all of Bitcoin's main functions: transaction creation, transaction validation and [[Mining |mining]] (see [https://www.metzdowd.com/pipermail/cryptography/2009-January/014994.html bitcoinv0.1]). However, as the network has grown, the requirements needed to perform different functions on the network have evolved and nodes have become more specialized. The 3 main functions are now performed largely by separate entities. Transaction creation is done by [[SPV|SPV]] wallets. Transaction validation is done by the Bitcoin SV [[Node|node]] software and mining is a separate function performed using purpose built mining software. | |
− | ==Peer to Peer Architecture and the Bitcoin Scalability Dispute== | + | ==Peer-to-Peer Architecture and the Bitcoin Scalability Dispute== |
− | Peer-to-peer is a term often misused and misunderstood within the blockchain space. | + | Peer-to-peer is a term often misused and misunderstood within the blockchain space. It has also been at the heart of disputes within the Bitcoin community that have lead to contentious forks that have split the Bitcoin blockchain. On the one hand the role of transaction validation and mining cannot be [[Attacks On Bitcoin|dominated by a single entity]] as the network would cease to provide any cryptographic or game theoretic advantages to existing centralized digital money systems. One of the main barriers to scaling is the extreme burden created by forcing all users to perform all functions. It is |
Revision as of 12:52, 3 January 2020
Peer-to-Peer computing or networking is a distributed application network architecture that spreads workload between peers. Peers are equally privileged, participate equally in the application and are said to form a peer-to-peer network of nodes.
Bitcoin as a Peer-to-Peer Network
Formally, Bitcoin is a peer-to-peer network built on top of the internet. In the early days of Bitcoin the network had a flat topological structure, where users were capable of running full nodes which performed all of Bitcoin's main functions: transaction creation, transaction validation and mining (see bitcoinv0.1). However, as the network has grown, the requirements needed to perform different functions on the network have evolved and nodes have become more specialized. The 3 main functions are now performed largely by separate entities. Transaction creation is done by SPV wallets. Transaction validation is done by the Bitcoin SV node software and mining is a separate function performed using purpose built mining software.
Peer-to-Peer Architecture and the Bitcoin Scalability Dispute
Peer-to-peer is a term often misused and misunderstood within the blockchain space. It has also been at the heart of disputes within the Bitcoin community that have lead to contentious forks that have split the Bitcoin blockchain. On the one hand the role of transaction validation and mining cannot be dominated by a single entity as the network would cease to provide any cryptographic or game theoretic advantages to existing centralized digital money systems. One of the main barriers to scaling is the extreme burden created by forcing all users to perform all functions. It is