---
title: Network Specs
slug: network-specs
docTags: 
createdAt: 2022-07-20T18:51:03.000Z
---

**Node Address Format Description**

**&#xD;**&#x54;he Caduceus Metaverse Protocol node address follows the libp2p network address
format protocol, and the multaddr component is used to resolve the address, for example:


`/ip4/127.0.0.1/tcp/6666/p2p/QmQZn3pZCcuEf34FSvucqkvVJEvfzpNjQTk17HS6CYMR35'`


The address starts with "/" and its segments separated by "/" with, in most cases, the
segments are as follows:


**First segment:** IP protocol version or DNS resolution protocol version. ip4 stands
for IPv4, ip6 stands for IPv6; dns4 corresponds to IPv4 version DNS service, dns6
corresponds to IPv6 version DNS service
**Second segment:** IP address or domain name, need to correspond to the first
segment
**Third segment:** communication network protocol, tcp is used by default
Fourth segment: listening port
**Fifth segment:** fixed agreement, please do not change, fixed as "p2p"
The above are just examples of node addresses in the most common scenarios. In
complex network scenarios (such as the need to use relay node, NAT penetration, etc),the address format will be slightly different.



## Network messages

The message data before encryption is composed of 8-bits byte indicating data length +
1- bit byte as data compression flag + actual data, for example:


`[00000007801057105......80858372]`


Suppose this is a network message data to be sent, where:
The first 8-bits \[**000000078**] indicate the length of the data to be sent. When the
receiver receives the data, if the received data length is less than this value, it will
try to continue to read the data until the full length of data is received or the
reception fails.
The 9th bit, \[**0**] or \[**1**] is the data compression flag bit. If it is 1, the receiver will
decompress the received data after receiving the complete data to get the final
data result.
Remaining bits, \[**1057105**……**80858372**] are the original data to be sent
(compressed or uncompressed data). Whether to compress should correspond to
the 9th bit compression flag. The compression/decompression is done using the
GZip toolkit.

## Networking methodology

The P2P network of the Caduceus Metaverse Protocol is implemented and
improved based on libp2p and the network address of the node follows the libp2p
address format protocol.

**Automatic Discovery**
Automatic node discovery and automatic connection functions can be realised
through the seed node settings. By default, each online node can serve as the seed
node of other nodes to provide network discovery services. This way, the
automatic networking mechanism of the Caduceus Metaverse Protocol is realised.


**Network Broadcasting and Gossip**
Caduceus Metaverse Protocol uses the message broadcast / subscribe function
implemented by the improved libp2p-gossip-pubsub. It can ensure that the
broadcast message can finally reach all nodes online. In the multi-chain scenario,
each chain on the node enjoys an independent GossipPubSub service and through
precise control of each Gossip routing table, the broadcast data isolation between
multiple chains can be realized, ensuring that the broadcast data is only in the
nodes in the chain. This is the certainty of spread. It is precisely this that allows all
chains of the Caduceus Metaverse Protocol to share an underlying P2P network.


Network Capacity
The Caduceus Metaverse Protocol can theoretically realise the online networking
of tens of thousands or more nodes at the same time, supporting a maximum of 100k transactions per second across all nodes.


Caduceus Metaverse Protocol can provide NAT penetration, proxy forwarding and
other scenarios in complex network environment solution support.











