PageSourceSearch

https://elastos-docs.onrender.com/assets/js/a1ec0669.66622c60.js

js elastos-docs.onrender.com collected 2026-10-03 11:41:49 UTC 15,792 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkelastos_docs=globalThis.webpackChunkelastos_docs||[]).push([[4271],{65324(e,r,n){n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>d,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"pc2/start/network","title":"PC2 Network Architecture","description":"PC2\'s decentralized infrastructure -- super nodes, user nodes, connectivity, and the protocol stack.","source":"@site/docs/pc2/start/network.md","sourceDirName":"pc2/start","slug":"/pc2/start/network","permalink":"/pc2/start/network","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":5,"frontMatter":{"type":"concept","sidebar_position":5,"title":"PC2 Network Architecture","description":"PC2\'s decentralized infrastructure -- super nodes, user nodes, connectivity, and the protocol stack.","keywords":["Elastos","World Computer","PC2","network","architecture","Boson","nodes"],"image":"/img/og-pc2.jpg"},"sidebar":"pc2Sidebar","previous":{"title":"Wealth Capsules & Exchange","permalink":"/pc2/start/wealth-capsules"},"next":{"title":"PC2 for Users","permalink":"/pc2/users/"}}');var s=n(74848),i=n(28453);const d={type:"concept",sidebar_position:5,title:"PC2 Network Architecture",description:"PC2's decentralized infrastructure -- super nodes, user nodes, connectivity, and the protocol stack.",keywords:["Elastos","World Computer","PC2","network","architecture","Boson","nodes"],image:"/img/og-pc2.jpg"},o="PC2 Network Architecture",c={},l=[{value:"Architecture Overview",id:"architecture-overview",level:2},{value:"Components",id:"components",level:2},{value:"Super Nodes",id:"super-nodes",level:3},{value:"User Nodes",id:"user-nodes",level:3},{value:"Connection Methods",id:"connection-methods",level:2},{value:"Direct (Public IP)",id:"direct-public-ip",level:3},{value:"Proxied (Behind NAT)",id:"proxied-behind-nat",level:3},{value:"Live Infrastructure",id:"live-infrastructure",level:2},{value:"Primary Super Node (InterServer)",id:"primary-super-node-interserver",level:3},{value:"Secondary Super Node (Contabo)",id:"secondary-super-node-contabo",level:3},{value:"DNS Configuration",id:"dns-configuration",level:2},{value:"Protocol Stack",id:"protocol-stack",level:2},{value:"Boson Network Integration",id:"boson-network-integration",level:2},{value:"Security Layers",id:"security-layers",level:2},{value:"Learn More",id:"learn-more",level:2}];function a(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"pc2-network-architecture",children:"PC2 Network Architecture"})}),"\n",(0,s.jsx)(r.p,{children:"PC2's decentralized infrastructure enables global access without centralized servers."}),"\n",(0,s.jsx)(r.h2,{id:"architecture-overview",children:"Architecture Overview"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{children:"\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502                           SUPER NODES                                   \u2502\n\u2502                                                                         \u2502\n\u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510         \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510              \u2502\n\u2502   \u2502 Primary (InterServer)\u2502         \u2502 Secondary (Contabo)  \u2502              \u2502\n\u2502   \u2502 198.51.100.1      \u2502         \u2502 198.51.100.2       \u2502              \u2502\n\u2502   \u2502                     \u2502         \u2502                      \u2502              \u2502\n\u2502   \u2502 Web Gateway :443    \u2502         \u2502 Failover gateway     \u2502              \u2502\n\u2502   \u2502 Boson DHT :39001    \u2502<-------\x3e\u2502 DHT replication      \u2502              \u2502\n\u2502   \u2502 Active Proxy:8090   \u2502         \u2502 Proxy backup         \u2502              \u2502\n\u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518         \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518              \u2502\n\u2502             \u2502                               \u2502                           \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n              \u2502                               \u2502\n              v                               v\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502                          PC2 USER NODES                                  \u2502\n\u2502                                                                          \u2502\n\u2502   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510   \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510                  \u2502\n\u2502   \u2502 Alice       \u2502   \u2502 Bob         \u2502   \u2502 Carol       \u2502                  \u2502\n\u2502   \u2502 (VPS/Public)\u2502   \u2502 (Home/NAT)  \u2502   \u2502 (Office/NAT)\u2502                  \u2502\n\u2502   \u2502             \u2502   \u2502             \u2502   \u2502             \u2502                  \u2502\n\u2502   \u2502 Direct HTTP \u2502   \u2502 Via Proxy   \u2502   \u2502 Via Proxy   \u2502                  \u2502\n\u2502   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518   \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518                  \u2502\n\u2502                                                                          \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n"})}),"\n",(0,s.jsx)(r.h2,{id:"components",children:"Components"}),"\n",(0,s.jsx)(r.h3,{id:"super-nodes",children:"Super Nodes"}
1),"\n",(0,s.jsx)(r.p,{children:"Infrastructure nodes that provide three services:"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Service"}),(0,s.jsx)(r.th,{children:"Port"}),(0,s.jsx)(r.th,{children:"Purpose"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Web Gateway"}),(0,s.jsx)(r.td,{children:"443"}),(0,s.jsx)(r.td,{children:"HTTPS termination, subdomain routing"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Boson DHT"}),(0,s.jsx)(r.td,{children:"39001/UDP"}),(0,s.jsx)(r.td,{children:"Distributed hash table, peer discovery"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Active Proxy"}),(0,s.jsx)(r.td,{children:"8090/TCP"}),(0,s.jsx)(r.td,{children:"NAT traversal relay"})]})]})]}),"\n",(0,s.jsx)(r.h3,{id:"user-nodes",children:"User Nodes"}),"\n",(0,s.jsx)(r.p,{children:"Your PC2 installation that provides personal cloud storage, WASM execution, AI chat, and file management."}),"\n",(0,s.jsx)(r.h2,{id:"connection-methods",children:"Connection Methods"}),"\n",(0,s.jsx)(r.h3,{id:"direct-public-ip",children:"Direct (Public IP)"}),"\n",(0,s.jsx)(r.p,{children:"VPS and servers with public IPs connect directly:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{children:"User Browser -> DNS (*.ela.city) -> Super Node -> Direct to PC2 Node\n"})}),"\n",(0,s.jsx)(r.h3,{id:"proxied-behind-nat",children:"Proxied (Behind NAT)"}),"\n",(0,s.jsx)(r.p,{children:"Home and office nodes behind NAT use Active Proxy:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{children:"User Browser -> DNS -> Super Node -> Active Proxy -> Tunnel -> PC2 Node\n"})}),"\n",(0,s.jsxs)(r.p,{children:["The Active Proxy handles NAT traversal automatically -- no port forwarding required. For the protocol details, see ",(0,s.jsx)(r.a,{href:"/pc2/developers/nat-traversal",children:"NAT Traversal"}),"."]}),"\n",(0,s.jsx)(r.h2,{id:"live-infrastructure",children:"Live Infrastructure"}),"\n",(0,s.jsx)(r.h3,{id:"primary-super-node-interserver",children:"Primary Super Node (InterServer)"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.strong,{children:"IP:"})," 198.51.100.1"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.strong,{children:"Location:"})," Dallas, TX, USA"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.strong,{children:"DNS:"})," ",(0,s.jsx)(r.code,{children:"*.ela.city"})]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.strong,{children:"Status:"})," Production"]}),"\n"]}),"\n",(0,s.jsx)(r.h3,{id:"secondary-super-node-contabo",children:"Secondary Super Node (Contabo)"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.strong,{children:"IP:"})," 198.51.100.2"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.strong,{children:"Location:"})," EU"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.strong,{children:"Purpose:"})," Failover, load distribution"]}),"\n"]}),"\n",(0,s.jsx)(r.h2,{id:"dns-configuration",children:"DNS Configuration"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Record"}),(0,s.jsx)(r.th,{children:"Type"}),(0,s.jsx)(r.th,{children:"Value"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"ela.city"})}),(0,s.jsx)(r.td,{children:"A"}),(0,s.jsx)(r.td,{children:"Main website"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"*.ela.city"})}),(0,s.jsx)(r.td,{children:"A"}),(0,s.jsx)(r.td,{children:"198.51.100.1 (Super Node)"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"alice.ela.city"})}),(0,s.jsx)(r.td,{children:"Routing"}),(0,s.jsx)(r.td,{children:"Alice's PC2 Node"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:(0,s.jsx)(r.code,{children:"bob.ela.city"})}),(0,s.jsx)(r.td,{children:"Routing"}),(0,s.jsx)(r.td,{children:"Bob's PC2 Node"})]})]})]}),"\n",(0,s.jsx)(r.p,{children:"Subdomains are registered dynamically via the gateway API."}),"\n",(0,s.jsx)(r.h2,{id:"protocol-stack",children:"Protocol Stack"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Layer"}),(0,s.jsx)(r.th,{children:"Technology"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Transport"}),(0,s.jsx)(r.td,{children:"HTTPS (Let's Encrypt wildcard)"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Routing"}
1),(0,s.jsx)(r.td,{children:"Subdomain to node mapping"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Identity"}),(0,s.jsx)(r.td,{children:"Boson DHT (Ed25519)"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"NAT Traversal"}),(0,s.jsx)(r.td,{children:"Active Proxy"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Encryption"}),(0,s.jsx)(r.td,{children:"TLS 1.3 + CryptoBox"})]})]})]}),"\n",(0,s.jsx)(r.h2,{id:"boson-network-integration",children:"Boson Network Integration"}),"\n",(0,s.jsx)(r.p,{children:"PC2 integrates with the Boson Network for decentralized identity and connectivity:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.strong,{children:"Distributed Hash Table (DHT)"})," -- peer discovery without central servers"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.strong,{children:"Ed25519 Cryptography"})," -- strong identity and signing"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.strong,{children:"Active Proxy"})," -- NAT traversal for unreachable nodes"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.strong,{children:"DID"})," -- decentralized identifiers (",(0,s.jsx)(r.code,{children:"did:boson:<nodeId>"}),")"]}),"\n"]}),"\n",(0,s.jsxs)(r.p,{children:["For the detailed Boson service breakdown, see ",(0,s.jsx)(r.a,{href:"/pc2/developers/boson-integration",children:"Boson Integration"}),"."]}),"\n",(0,s.jsx)(r.h2,{id:"security-layers",children:"Security Layers"}),"\n",(0,s.jsxs)(r.table,{children:[(0,s.jsx)(r.thead,{children:(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.th,{children:"Layer"}),(0,s.jsx)(r.th,{children:"Technology"})]})}),(0,s.jsxs)(r.tbody,{children:[(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Transport"}),(0,s.jsx)(r.td,{children:"TLS 1.3 (HTTPS via Let's Encrypt)"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Session"}),(0,s.jsx)(r.td,{children:"CryptoBox (curve25519-xsalsa20-poly1305)"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Identity"}),(0,s.jsx)(r.td,{children:"Ed25519 signatures"})]}),(0,s.jsxs)(r.tr,{children:[(0,s.jsx)(r.td,{children:"Storage"}
1),(0,s.jsx)(r.td,{children:"Wallet-scoped isolation"})]})]})]}),"\n",(0,s.jsx)(r.h2,{id:"learn-more",children:"Learn More"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"/pc2/developers/boson-integration",children:"Boson Integration"})," -- identity services and DHT operations"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"/pc2/developers/nat-traversal",children:"NAT Traversal"})," -- how Active Proxy works"]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.a,{href:"/pc2/developers/supernode",children:"Super Node Guide"})," -- run your own gateway infrastructure"]}),"\n"]})]})}function h(e={}){const{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},28453(e,r,n){n.d(r,{R:()=>d,x:()=>o});var t=n(96540);const s={},i=t.createContext(s);function d(e){const r=t.useContext(i);return t.useMemo(function(){return"function"==typeof e?e(r):{...r,...e}},[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),t.createElement(i.Provider,{value:r},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.