乐趣区

关于区块链:中移链链账户合约与资源关系介绍

中移链链账户是在中移链区块链上注册的用户标识,每个账户能够持有肯定数量的资源。CPU 资源是账户用于执行智能合约的计算能力配额,决定了账户能够应用的 CPU 计算工夫。NET 资源是账户的带宽配额,用于处理事务的传输和网络通信。RAM 资源用于存储智能合约执行过程中状态库数据。这些资源、链账户和智能合约形成了整个中移链的生态环境。

01 创立链账户

在中移链中,通过椭圆曲线加密算法生成公私钥对,这是一种非对称加密算法,它应用两个不同的密钥(公钥和私钥)进行加密和解密。所以在创立账户前,首先要生成账户的公私钥对。公私钥对用于身份验证和交易签名,以便执行智能合约。在 EOS 中,一个账户能够领有多个公钥,而每个公钥都能够受权给不同的操作或合约执行权限。与之绝对应的是私钥,它是窃密的,并且只有持有者能力拜访。私钥负责对交易进行签名和身份验证,确保只有私钥的持有者能力执行特定操作。因而,私钥必须妥善保存,以避免未经受权的人员拜访你的账户并进行非法操作。

确认公私钥对并妥善保留后,在 BSN 凋谢联盟链后盾中找到链账户治理,点击左上角的创立链账户。

链类型抉择中移链。中移链默认账户名称为 12 位(容许字符 a~z、1~5)。

在 ActiveKey 中输出生成的公钥,并点击确认创立,即可实现创立。(注:公私钥也能够点击在线生成按钮下载保留)

创立实现后,能够在链账户治理中看到创立的链账户。

02 链账户的次要资源

在中移链中,链账户次要蕴含 CPU、RAM 和 NET 三种资源。CPU 资源是用于执行智能合约的计算能力,RAM 资源用于存储智能合约和其它数据,NET 资源则是用于解决网络通信。每个中移链账户须要购买这些资源才可能在区块链上执行智能合约。

中移链查问接口网关地址 /api/[我的项目 id]/rpc/getAccount 能够获取账户的信息如下:

{  
   "account_name": "testaccount1",  
    "head_block_num": 307847,  # 区块高度
    "privileged": false,  # 是否为超级账户
    "created": "2021-12-28T02:08:41.500",  # 账户创立工夫  
    "core_liquid_balance": "5.3960 SYS",  # 可用余额  
    "ram_quota": 401417, # RAM 总量 byte:是理论买的 RAM + 赠送的 ram_gift_bytes (1400)  
    "net_weight": 200000, # 网络带宽资源权重  
    "cpu_weight": 200000, # cpu 资源权重  
    "net_limit": {  
      "used": 70142,      # 已用 net  
      "available": 36168601, # 可用余额 net 单位 byte  
      "max": 36238743,  # 总 net 值 单位 byte  
      "current_used": 21807  
    },  
    "cpu_limit": { # 账户 cpu 应用信息  
      "used": 6239,  
      "available": 13817727,  
      "max": 13823966,  
      "current_used": 1940  
    },  
    "ram_usage": 383920,  # RAM 已用 byte   
    "permissions": [{  # 权限相干信息
        "perm_name": "active",  
        "parent": "owner",  
        "required_auth": {  
          "threshold": 1,  
          "keys": [{  
              "key": "EOS6***********",  
              "weight": 1  
            }  
          ],  
          "accounts": [],  
          "waits": []}  
      },{*******],  
    "total_resources": { # 总资源
      "owner": "testaccount1",  
     "net_weight": "20.0000 SYS",  
      "cpu_weight": "20.0000 SYS",  
      "ram_bytes": 400017 # 理论购买的 RAM 大小  
    },  
    "self_delegated_bandwidth": null, # 为本人抵押的资源
    "refund_request": null,  # 正在赎回的资源
     "voter_info": null, # 投票的信息
 }  

从接口返回信息能够看到,每个链账户都能够取得肯定的 CPU、NET 和 RAM 资源。用户能够在中移链凋谢联盟链中通过分配资源性能购买资源。

03 链账户、合约与资源关系介绍

链账户和智能合约是中移链区块链平台的两个外围概念,它们独特构建了中移链生态系统的基石。

智能合约是在中移链区块链上执行的自动化合约。它是一段由代码编写的程序,蕴含了特定条件和规定。在中移链网络中,用户能够应用 C++ 和 JavaScript 来编写智能合约,最终会编译为 WebAssembly(Wasm)的二进制文件格式进行执行。编写完合约后,用户须要通过链账户来将智能合约部署到链上且一个链账户只能部署一个合约,这个链账户将成为合约的惟一标识,并作为存储合约的代码和数据的标识。在部署智能合约时,须要应用链账户的私钥进行数字签名和身份验证以及将合约的二进制文件和相干的部署参数发送到区块链网络上。

RAM、CPU 和 NET 是中移链中不可或缺的三个资源,它们为智能合约提供了必要的反对和保障,同时也为链账户提供了足够的容量和计算能力,从而推动整个生态系统的倒退和扩张。

中移链账户须要应用 RAM 来存储合约执行过程中各种类型的数据和状态库,例如:

(1)账户数据记录,如账户的余额、交易记录、受权信息、公钥和权限等;

(2)合约状态信息,如存储数据的键值对、智能合约的状态和配置信息;

每个中移链账户须要购买足够的 RAM 来反对其合约执行的须要,否则将无奈写入新的数据(但能够通过删除智能合约中状态数据库中的数据从而清理出可用空间)。CPU 资源用于执行智能合约,而带宽资源 NET 则用于将交易和数据传输到链上。CPU 资源的耗费取决于合约执行的复杂性和执行工夫,而 NET 资源的耗费取决于合约执行事务的大小。链上越沉闷的交易越多,CPU 和 NET 就越容易被耗费。CPU、NET 资源是抵押型的,如果一个账户的 CPU 资源或 NET 资源配额有余,该账户的合约执行速度将受到限制,无奈执行新的合约以及发送事务,直到资源被线性开释或从新减少。通过 BSN 凋谢联盟链的控制台能够不便看到以后资源的耗费状况。

04 参考资料

[1]BSN 凋谢联盟链:https://opb.bsnbase.com/main/index

[2] 官网 EOSIO 账号和权限介绍:https://developers.eos.io/welcome/latest/protocol-guides/acco…

[3] 官网 EOSIO 交易介绍:https://developers.eos.io/welcome/latest/protocol-guides/tran…

[4] 官网 EOSIO 智能合约介绍:https://developers.eos.io/welcome/latest/smart-contract-guide…

[5] 官网 EOSIO 资源模块介绍:https://developers.eos.io/welcome/latest/resources/index

电脑拜访 DDC 网络门户 ddc.bsnbase.com

-END-

退出移动版