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

中移链链账户是在中移链区块链上注册的用户标识,每个账户可以持有一定数量的资源。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/accounts_and_permissions

[3]官方EOSIO交易介绍:

https://developers.eos.io/welcome/latest/protocol-guides/transactions_protocol

[4]官方EOSIO智能合约介绍:

https://developers.eos.io/welcome/latest/smart-contract-guides/index

[5]官方EOSIO资源模块介绍:

https://developers.eos.io/welcome/latest/resources/index

电脑访问DDC网络门户

ddc.bsnbase.com

-END-

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
链需要进行性能测试的原因有以下几点: 1. 评估系统的可扩展性:性能测试可以帮助评估链在处理大规模用户和交易时的可扩展性。通过模拟并发用户和高负载情况,可以了解链在实际使用是否能够满足不断增长的需求。 2. 发现系统瓶颈和性能问题:性能测试可以帮助发现链系统的性能瓶颈和问题,例如延迟过高、吞吐量不足等。通过测试,可以识别和解决影响系统性能的因素,以提高链的整体性能和效率。 3. 优化系统配置和资源分配:通过性能测试,可以了解链在不同配置和资源分配下的性能表现。根据测试结果,可以优化系统的配置参数,合理分配资源,以获得更好的性能和效果。 4. 提高用户体验和满意度:性能测试可以确保链在大规模用户同时使用时仍能提供良好的用户体验。通过测试,可以确保系统的响应时间合理,并且不会因为负载增加而导致系统崩溃或性能下降,从而提高用户的满意度和信任度。 5. 确保系统的稳定性和可靠性:性能测试可以帮助评估链在正常负载和高峰负载情况下的稳定性。通过测试,可以发现和解决潜在的系统故障和性能问题,从而确保链在实际使用的稳定性和可靠性。 综上所述,链进行性能测试是为了评估系统的可扩展性、发现问题和瓶颈、优化配置和资源分配、提高用户体验和满意度,以及确保系统的稳定性和可靠性。性能测试是链开发和部署过程非常重要的一环,可以帮助提升系统的性能和效果,满足用户的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值