多链

多链是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上运行,并在不同的链上协作其模块。