多链¶
多链是pchain中共存链的组织结构,它包含一个主链和若干个必要的并行子链。
不同链的功能¶
Pchain有两种类型的链,一种是主链;另一个是子链,可能有很多,它们是相同的和独立的。
主链负责余额记录/转移和子链数据的存储。子链负责运行智能合约。对于主链和子链,PI(pchain的令牌)都要为它们的事务执行付费。主链和子链中的PAI值相同,可以在主链和子链之间传递。
多链的设计¶
每个链都有自己的栈(共识、事务、块、EVM)
在pchain中,主链和子链分别运行各自的栈,这些栈在大多数模块中共享相同的逻辑,如协商一致算法(PDBFT)、事务的接收和处理、块的存储、EVM的执行等。
主链栈与子链栈的区别是:主链栈限制了智能合约的部署;子链堆栈不发出自己的令牌,主链和子链共享一个PAI。
rpc
Pchain为多链编写特定的RPC逻辑,每个子进程单独处理自己的RPC需求。当调用时,它只需要在url的路径中添加链id来区分链。例如,当访问子链“childchain-0”时,要发布的url是http://pchain-node/childchain-0。
p2p
利用ethereum的P2P模块设计,当首字母启动一个链时,只需在ProtocolManager中添加链和一个子协议的映射(只提供一个名称),就可以使P2P消息在相关链中正确路由。
chain manager and cross-chain helper
另一个是CrossChainHelper,它被注入到每个链的堆栈中。当主链或子链需要检索跨链信息或调用跨链函数时,CrossChainHelper将派上用场。
多链结构能带来什么¶
轻松创建公司自己的链
任何公司有足够的PAI和验证节点可以在pchain中创建一个子链。而这个子链将作为一个正常的公有链或联营链,该公司将获得所有功能的区块链技术供应。
多链协作可以实现大规模的业务逻辑
每个单独的链都有自己的处理能力,当业务模块可以被拆分并相互独立时,每个模块就可以部署在一个链中。通过这种方式,即使是非常大的企业也可以在pchain上运行,并在不同的链上协作其模块。