CPChain主网介绍之智能合约篇
智能合约是一段在可信环境中用于控制数字资产的计算机程序,其本质为脚本,这些脚本可以通过区块链系统来处理各种业务逻辑,比如共识协议的运行、物流跟踪、拍卖等业务。
众所周知,DPoR(Dynamic Proof of Reputation)共识协议是CPChain的特色共识协议,也是实现CPChain主网常态化运行的基础。在CPChain中,我们已内置了6个智能合约,分别为:Proxy Contract(代理合约)、RPT Contract(信誉度合约)、Campaign Contract(竞选合约)、Admission Contract(准入合约)、PDash Contract (PDash合约)、Register Contract(注册合约),这些智能合约非常重要, 从信誉度评估、准入考核、实际应用等多个维度来确保DPoR共识协议的正常运行 。
1
Proxy register contract(代理注册合约)
Proxy register contract (代理注册合约)的地址可以通过函数registerProxyContract()与实际合约地址绑定。因此,部署者在更新合约时,无需修改Go或Solidity中的地址。真实的合约地址可以通过函数getRealContract()获得。
2
RPT Contract(信誉度合约)
RPT(信誉度)合约的功能主要是计算RNode荣誉节点信誉度。它是RNode生态系统的核心组成部分,其中信誉值的评估包括5个维度: 账户余额(Account Balance),交易(Transaction),数据贡献(Data Contribution),区块链维护(Blockchain Maintenance)和代理信誉(Proxy Reputation) 。
通过调用函数getRpt(),开发人员可获取相应节点的信誉值。同时,RPT信誉度合约具有可更新性,以避免某些故障节点恶意增加其信誉度。
5个维度的权重可以通过5个PRT信誉度合约函数:updateAlpha()、updateBeta()、updateGamma()、updatePsi()和updateOmega()进行设置。窗口大小的权重也可以通过函数updateWindow()进行调整。
3
Campaign Contract(竞选合约)
当用户开始生成区块时,需要调用竞选合约。
如果通过准入合约的考核,则可通过竞选合约成为一名RNode节点。此外,如果该用户的信誉值排名较为靠前,那么,就有可能通过竞选合约获得委员会成员的竞选资格。此外,该用户还可获得将区块插入CPChain中并获得一部分CPC作为奖励。
下面是一部分竞选合约中的重要函数:
claimCampaign():当用户声明参加活动时调用此函数。竞选合约要求以CPC支付相应的费用作为押金。
quitCampaign():该函数在用户退出活动后调用,用户可通过该函数取回它的押金。
punishCandidate():该函数只能由合约部署者调用。 如果合约部署者观察到RNode节点的一旦发生任何恶意行为,则该部署者可扣留RNode节点的押金。
candidatesOf()和candidateInfoOf():用于检索RNode节点及其信息的函数。
4
Admission Contract(准入合约)
竞选合约调用准入合约,用于验证候选人的CPU和内存资源是否符合出块要求。
合约部署者们可以通过updateCPUDifficulty()和updateMemoryDifficulty()这两个函数来实现验证。
5
PDash Contract (PDash合约)
PDash是CPChain中的一个重要应用程序,是数据存储和分享的平行分布式架构,围绕数据交易场景,为消除数据提供者与消费者之间的信息差距而提供的一个公正、透明、高效的数据交易平台。(更多关于PDash的消息可以戳此链接了解: 这款让你的数据变现的应用终于上线啦 ),PDash有助于RPT信誉度合约计算代理信誉。
6
Register Contract(注册合约)
注册合约主要用于记录节点的上传历史记录,它与RPT合约共同协作以计算节点的数据贡献。
以上就是这6个智能合约的简单介绍,相信大家对于CPChain内置的智能合约有了初步的了解,如果想更深入的了解CPChain主网,可以点击链接https://docs.cpchain.io/index.html,查看并阅读更加详细的CPChian技术文档,也可以扫描下方二维码,提问关于主网的问题~