• 使用WeBASE开发区块链应用
    • 部署WeBASE
    • 登录WeBASE管理平台进行配置
    • 开发智能合约
    • 应用层开发
    • 运维管理

    使用WeBASE开发区块链应用

    部署WeBASE

    搭建WeBASE, 请参考快速部署

    登录WeBASE管理平台进行配置

    安装WeBASE完成后,需要将节点信息添加到WeBASE平台中,这样WeBASE才可和节点进行通信。需要添加的信息包含节点信息,生成用户的私钥等。如下图所示:

    • 节点信息:[节点]
    • 私钥用户:[私钥用户]

    开发智能合约

    以HelloWorld.sol为例

    1. pragma solidity ^0.4.2;
    2.  
    3. contract HelloWorld{
    4. string name;
    5.  
    6. function HelloWorld(){
    7. name = "Hello, World!";
    8. }
    9.  
    10. function get()constant returns(string){
    11. return name;
    12. }
    13.  
    14. function set(string n){
    15. name = n;
    16. }
    17. }
    • 通过智能合约IDE部署合约,并获取合约地址等信息,[合约]

    应用层开发

    • 调用交易接口请参考交易接口

    从IDE中的输出信息,拷贝合约地址,合约名,方法名等信息,同时获取用户的公钥信息,调用交易接口。具体代码请参考 HelloWorld范例

    • 主要代码
    1. application.yml
    2.  
    3. transactionUrl: http://127.0.0.1:8082/webase-front/trans/handle
    4. groupId: 1
    5. userAddress: "0x4f08eac5af5e77b7006d11bee94adba2f721def8"
    6. useAes: true
    7. contract.name: HelloWorld
    8. contract.address: "0xca597170829f4ad5054b618425a56e0be23cbc55"
    9. contract.funcName: set
    10. contract.funcParam: "[\"abc\"]"
    • TransactionService.java

    1. @Slf4j@Data@Servicepublic class TransactionService { @Autowired private RestTemplate rest; @Value("${transactionUrl}") private String url; @Value("${userAddress}") private String user; @Value("${groupId}") private int groupId; @Value("${useAes}") private Boolean useAes; @Value("${contract.name}") private String contractName; @Value("${contract.address}") private String contractAddress; @Value("${contract.funcName}") private String funcName; @Value("${contract.funcParam}") private String funcParam;

    2. public void sendTransaction() {
    3.     try {
    4.         TransactionParam transParam = new TransactionParam();
    5.         transParam.setGroupId(groupId);
    6.         transParam.setContractAddress(contractAddress);
    7.         transParam.setUseAes(useAes);
    8.         transParam.setUser(user);
    9.         transParam.setContractName(contractName);
    10.         transParam.setFuncName(funcName);
    11.         transParam.setFuncParam(JSONArray.parseArray(funcParam));
    12.         log.info("transaction param:{}", JSON.toJSONString(transParam));
    13.         Object rsp = rest.postForObject(url, transParam, Object.class);
    14.         String rspStr = "null";
    15.         if (Objects.nonNull(rsp)) {
    16.             rspStr = JSON.toJSONString(rsp);
    17.         }
    18.         log.info("transaction result:{}", rspStr);
    19.     } catch (Exception ex) {
    20.         log.error("fail sendTransaction", ex);
    21.     }
    22.    System.exit(1);
    23. }
    24. }

    运维管理

    应用层发布后,持续发送交易,可在WeBASE管理平台查看数据概览,节点监控,查看交易解析,交易审计等管理功能。

    • 查看交易解析[交易解析]