更新时间:2024-07-12 GMT+08:00
分享

概述

合约主要用于操作账本上的数据。作为运行在区块链上的、特定条件下自动执行的代码逻辑,合约是用户利用区块链实现业务逻辑的重要途径,基于区块链特点,合约的运行结果是可信的,其结果是无法被伪造和篡改的。

  • 智能合约由用户自行编写上传并保证安全,请务必注意命令注入等相关安全问题。
  • 为了确保代码在不同用户之间的一致性运行,华为云区块链引擎服务参考了成熟的开源社区方案(如Hyperledger Fabric)。用户在部署智能合约时,使用预配置的容器镜像进行处理,通过预配置的开发/编译工具(例如:javac、cpp、gcc等)减少环境差异带来的问题,确保智能合约能够在区块链网络上正确运行。华为云区块链引擎服务通过资源隔离等方式,降低了由此带来的安全风险。
  • 为了保障链上数据的机密性,建议采用以下手段进行防护:
    • 数据加密:对链上存储的数据进行加密,只允许授权的参与方解密和查看数据。常用的加密方法包括对称加密和非对称加密。
    • 访问控制:实施严格的访问控制机制,确保只有被授权的用户或节点才能访问敏感数据。例如:不接入公网或使用VPC安全组等网络隔离手段限制访问。
    • 链下数据存储:对于特别敏感的数据,可以采用链下存储的方式,将数据存储在链下,并在区块链上记录其哈希值等摘要信息,以便在需要时验证数据的一致性和完整性。

基于合约SDK开发合约的流程如下:

  1. 下载对应的合约SDK文件。
  2. 配置SDK文件到本地合约项目。
  3. 基于SDK提供的库函数进行合约开发。

华为云区块链提供Go、Solidity类型的合约示例供开发者使用,示例下载和开发参考如下:

表1 华为云区块链引擎不同合约类型开发指南

合约类型

合约SDK下载

开发指南

Go

链接

参考文档

Solidity

不涉及

参考文档

Java

<dependency>  
      <groupId>com.huawei.huaweichain</groupId>  
      <artifactId>contract-sdk</artifactId>  
      <version>0.2.2</version>    
</dependency>

参考文档

相关文档