Paired Chinese version: P2.zh-CN.md
Revision: 2026-08-22
Public guides: Run an L1 node · Linux runtime
P2 records an experimental composition in which selected geth or Prysm TCP
streams are carried by the same persistent web3:// transport used by
applications.
This is laboratory work, not the public L1 joining contract. Public operators still join CoNET L1 through the documented geth and Prysm P2P path. P2 does not claim that existing validators, beacon nodes, or execution clients have moved to Layer Minus.
The composition reuses the P1 stream contract:
local L1 process
⇅ TCP
conet-l0d client endpoint
⇅ encrypted Layer Minus session
conet-l0d --proxyDuplex
⇅ TCP
remote L1 process
The application identity remains a wallet address or exact BeamioTag:
web3://<wallet-or-tag>:8400
web3://<wallet-or-tag>:4200
The ports are application metadata:
| Port | Laboratory use |
|---|---|
8400 |
geth devp2p TCP stream |
4200 |
Prysm libp2p TCP stream |
No new SI command family or public endpoint is introduced. The session uses the existing Layer Minus entry/mailbox attachment path plus versioned application-session messages.
The August 2026 two-host experiment used:
| Role | Public host | Overlay endpoint |
|---|---|---|
| Spoke | 74.208.224.45 |
100.64.0.5 |
| Hub | 198.251.77.98 |
100.64.0.6 |
The hub published local L1 services with --proxyDuplex. The spoke selected
the hub with a web3:// target and exposed a local client endpoint. Existing
geth and beacon processes then used ordinary TCP against those local
endpoints.
The experiment demonstrated:
- an accepted wallet-addressed duplex offer;
- continuous encrypted frames in both directions;
- a stable TCP connection for the selected L1 service;
- reconnect after an application-stream interruption; and
- unchanged geth and Prysm peer identities.
The specific addresses above are laboratory facts, not universal defaults.
P2 is considered active only when all applicable evidence agrees:
| Layer | Evidence |
|---|---|
| Runtime | conet-l0d status reports the expected server and client endpoints |
| Layer Minus | logs show accepted duplex sessions and continuing encrypted frames |
| TCP | the selected local and remote service connections remain established |
| Geth | net_peerCount and the expected enode confirm the execution peer |
| Prysm | /eth/v1/node/peer_count and peer identity confirm the consensus peer |
| Sync | head slot rises and sync distance falls over time |
A running daemon alone is not proof that the L1 peer is connected.
Recovery proceeds from the application transport outward:
- verify the local service and the published upstream are listening;
- verify the wallet route and duplex session;
- verify encrypted frames continue in both directions;
- verify the L1 client has an established TCP peer; and
- only then diagnose geth or Prysm peer state.
Restarting geth, beacon-chain, or validator remains an explicit operator decision and requires prior authorization. Transport diagnosis must not silently restart chain infrastructure.
P2 does not:
- replace the public geth/Prysm node-joining guide;
- define a general IP network;
- make browser clients operate L1 consensus software;
- add a new public domain or SI wire command;
- promise production availability for L1-over-L0; or
- turn SilentPass into an L1 consensus transport.
Earlier datagram and discovery experiments remain engineering history. They
are not part of the public web3:// application contract.
The product hierarchy is:
- Layer Minus (L0) supplies encrypted, wallet-routed transport.
web3://defines the application locator and session contract.conet-l0dprovides the Linux server/client runtime.- P2 explores one optional Linux-to-Linux use of that runtime for selected L1 TCP streams.
The application protocol remains useful to ordinary services and browser or native clients regardless of the P2 experiment.