安装neb.js

neb.js提供javascript开发的API接口

  1. 创建一个neb文件夹,在终端命令行中进入该文件夹,克隆neb.js
    git clone https://github.com/nebulasio/neb.js.git
  2. 会新建一个neb.js文件夹,进入该文件夹,安装所有依赖
    npm install
  3. 安装gulp
    npm install gulp
  4. 打包生成neb.js等文件
    gulp
  5. 执行成功会生成/dist文件夹,文件夹中会生成我们要使用js文件。
    • neb.js:Used in browser side. Including outside dependency.
    • neb-light.js:Used in Repl console. Not including outside dependency.
    • nebulas.js: Fully functional in the browser. Users can create an address, sign a transaction, and deploy/call a smart contract.

安装nebPay

NebPay SDK 为不同平台的交易提供了统一的支付接口,开发者在Dapp页面中使用NebPay API可以通过浏览器插件钱包、手机app钱包等实现交易支付和合约调用。

github地址:https://github.com/nebulasio/nebPay

安装方法同上。会生成nebPay.js文件

开发Dapp

要实现的功能非常简单:

  • 调用合约中的save方法发布信息
  • 调用合约中的read方法读取信息

建立项目

将前面生成的nebulas.js和nebPay.js放在libs文件夹下,我的目录结构如下:

星云链智能合约开发(七):Dapp开发_第1张图片

index.html源码




    
    星云链Dapp


    

发布信息

标题:
内容:

执行结果:



查询信息:

作者地址:
 
信息:

运行Dapp

发布信息

第一步

星云链智能合约开发(七):Dapp开发_第2张图片

第二步

星云链智能合约开发(七):Dapp开发_第3张图片

第三步

星云链智能合约开发(七):Dapp开发_第4张图片

第四步

星云链智能合约开发(七):Dapp开发_第5张图片

第五步

星云链智能合约开发(七):Dapp开发_第6张图片

根据流水号查询的执行结果数据如下:

{
    "code": 0,
    "data": {
        "data": "eyJGdW5jdGlvbiI6InNhdmUiLCJBcmdzIjoiW1wi5rWL6K+V5Y+R5biD5L+h5oGvXCIsXCLmtYvor5XlnKjmmJ/kupHpk77kuIrlj5HluIPkv6Hmga9cIl0ifQ==",
        "contractAddress": "",
        "type": "call",
        "nonce": 1,
        "gasLimit": "200000",
        "gasUsed": "",
        "chainId": 1001,
        "from": "n1GjJ6CtCj9RLgcZfUD99A3fgA9fX2kuEJ5",
        "to": "n1hmSwsxM2S1Zo1Q5kMuQaKcnS1Xu8ATBbx",
        "value": "0",
        "hash": "69640cacc2075b2af7a83d3882a4da92ab5b820b08ea182f9709e0f339fc47c5",
        "gasPrice": "1000000",
        "status": 2,
        "timestamp": 1525943841
    },
    "msg": "success"
}

查询信息

星云链智能合约开发(七):Dapp开发_第7张图片

至此,一个基于星云链开发的简单的Dapp就完成了。

总结

  • 智能合约就好比传统开发中的服务端,只不过是搭建在区块链的节点上;
  • Dapp就好比传统开发中的前端,通过给定的方式调用我们发布的智能合约中的方法;
  • 数据存储在区块链上,区块链存储区类似于传统的key-value存储系统(比如:redis),当然我们也可以结合其他存储方式综合使用。