
# 合约管理
为您提供界面化合约管理功能，包括合约安装、更新合约，Go语言类型的合约支持合约扫描功能进行安全检查。
表1华为云区块链引擎支持的合约类型 
| 合约类型     | 开发指南                                                                | 注意事项                                                                                                                   |
|:---|:---|:---|
| Go       | [链接](https://support.huaweicloud.com/devg-bcs/bcs_devg_01_006.html) | Go类型合约文件需要压缩成zip格式进行安装，且确保合约文件位于压缩包的一级目录下。                                                                             |
| Solidity | [链接](https://support.huaweicloud.com/devg-bcs/bcs_devg_01_056.html) | Solidity类型合约只需提供字节码即可。 客户端调用的合约名称固定为：NATIVE_CUSTOM_EVM，默认背书策略为任意组织背书。         |
| Java     | [链接](https://support.huaweicloud.com/devg-bcs/bcs_devg_01_064.html) | Java类型合约文件需要压缩成zip格式进行安装，且确保合约文件位于压缩包的一级目录下。 **压** **缩包中的文件名称必须为contract.jar。** |
   
#### 安装合约
1. 登录区块链服务管理控制台。
2. 单击左侧导航栏中的"实例管理"，选择华为云区块链引擎页签。
3. 请根据实际情况按如下方式进入合约管理页面。 
   - 基于华为云资源部署的华为云区块链引擎实例：
     1. 单击实例名称，进入实例概览页面。
     
     2. 选择左侧导航栏中的"合约管理"。
      
   
   
   
   
4. 单击页面右上角的"安装合约"
5. 在安装界面输入"合约名称"、"版本号"，详细参数配置请参考[表2]。
   
    表2合约信息 
   | 参数   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   |:---|:---|
   | 合约名称 | 合约名称，以小写字母开头，支持小写字母和数字，长度6-25位。                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   | 版本号  | 合约版本号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   | 合约类型 | 支持Go、Java和Solidity的合约类型。 - 实例版本为1.0.2.1及以上支持Java合约类型。  - 实例版本为1.0.2.0及以上支持Solidity合约类型。  - 版本查看方法：实例创建成功后，单击**实例名称**，进入概览页面，在链信息下方可查看实例版本信息。   |
   | 合约文件 | 添加合约文件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 字节码  | Solidity类型合约需要配置，其他类型合约无需配置。                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 安装组织 | 选择需要安装的组织。 Solidity合约的安装组织默认为共识组织，不支持自定义组织。                                                                                                                                                                                                                                                                                                                                                                                                        |
   | 背书策略 | 背书是指背书组织执行链码交易并返回一个提案响应给客户端应用的过程。背书策略则指明了需要区块链上多少不同组织的成员根据指定智能合约执行和验证交易才能使一笔交易有效。因此，背书策略定义了必须"背书"（批准）提案执行的组织。 - 选择"下列任意组织背书"：只要任意一个背书组织为交易背书，交易即为有效。  - 选择"下列全部组织背书"：只有所有背书组织为交易背书，交易才为有效。                                    |
   | 背书组织 | 选择需要背书的组织。                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | 合约扫描 | 合约类型选择Go，该功能才会显示开启，默认开启，请根据需要选择是否开启代码安全检查。                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | 描述   | 自定义描述信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
      
   图1合约安装   
   ![](https://support.huaweicloud.com/usermanual-bcs/zh-cn_image_0000001433346472.png "点击放大")
   
   
6. 单击"安装"，安装成功后刷新页面，合约管理页面显示一条已安装成功的合约信息。 
   ![](https://support.huaweicloud.com/usermanual-bcs/zh-cn_image_0000001483783277.png "点击放大")
   
   
7. 单击"操作"列的"下载扫描报告"查看合约扫描结果。（以下示例仅供参考，请以实际扫描结果为准。） 
   若不开启代码安全检查，则不会生成检查报告，也不会显示"下载扫描报告"按钮。
   1. 解压文件压缩包，打开里面的html文件查看扫描结果详情，扫描报告按照错误、警告、提示三种类型分类显示，其中"错误"级别的问题需要处理，否则会影响链代码的正常功能；"警告"级别的问题建议通过代码重构进行规避；"提示"级别的问题可以根据实际情况进行选择性的处理。 ![](https://support.huaweicloud.com/usermanual-bcs/zh-cn_image_0000001239055255.png "点击放大")
      
   
   2. 例如示例图中出现"警告"级别的问题，单击打开详细信息，提供问题的简要说明、错误示例代码、扫描详情、修改建议和示例代码供您参考。
      ![](https://support.huaweicloud.com/usermanual-bcs/zh-cn_image_0000001194215292.png "点击放大")
      ![](https://support.huaweicloud.com/usermanual-bcs/public_sys-resources/note_3.0-zh-cn.png)
      您可以根据合约检查结果对代码进行修改后，重新进行合约的安装或者更新。
      
    
   
   
 
#### 更新合约
如果您的合约更新，您需要对新版本合约进行重新安装以满足新的业务需求。
1. 在合约管理页面，单击"操作"列的"更新合约"。
2. 填写版本号、选择安装组织、添加文件等，单击"更新"。 
   图2更新合约   
   ![](https://support.huaweicloud.com/usermanual-bcs/zh-cn_image_0000001422296840.png "点击放大")
   
   
3. 更新完成后，合约管理页面则会显示已更新成功的合约信息。 
   图3更新后的合约信息   
   ![](https://support.huaweicloud.com/usermanual-bcs/zh-cn_image_0000001422137360.png "点击放大")
   
   
 
