美文网首页SmartMesh Developer Community
在Spectrum光谱链上做小程序dapp开发(2)

在Spectrum光谱链上做小程序dapp开发(2)

作者: i_fan | 来源:发表于2018-11-19 15:08 被阅读28次

    基于区块链的微信小程序云笔记实战

    主要功能:编写,查询,修改云笔记,但是由于存放在区块链上,不可删除

    1.环境搭建:

        首先,要想在区块链上存放数据,就必须编写智能合约,这里采用solidity这门语言进行智能合约的开发

        1.1 智能合约的编写

    CloudNoteService的智能合约代码:

    CloudNoteService.sol

            1.2 Spectrum链的搭建

            编写好智能合约之后,下一步是进行智能合约的部署,因为是运行在区块链上,所以进行部署之前应该搭建一个私有的区块链,这里采用Spectrum光谱链。关于光谱链的搭建,可以参考以下文章:

    window:

    Spectrum链开发 -- Windows开发环境搭建

    mac:

    Spectrum链开发--mac开发环境搭建

    linux

    Spectrum链开发--linux开发环境搭建

            1.3 部署智能合约

                搭建Spectrum链完成之后,部署智能合约,可以参考

                在Spectrum测试链上部署智能合约

                简单描述智能合约的部署:

                1.3.1编写智能合约,点击编译,之后点击detail

                  1.3.2.将web3deploy中的代码复制到搭建的spectrum链的控制台中运行

    deploy.png

                1.3.3.查询合约是否部署成功

    check.png

    1.4 数据库的创建:

             1.4.1 用navicat创建一个名为cloudnote的数据库,在此数据库中创建一张名为note的表,表结构如下:

    1.5 nodejs的环境搭建:

            1.5.1打开官网的下载链接 nodejs下载网址,下载对应的版本进行安装即可

            1.5.2 这里采用webstorm进行nodejs的开发,这是已经写好的cloudnoteservice 代码

                    nodejs程序中有几个需要注意的地方

                    1. database.js中的constructor 中的密码需要改成自己对应的数据库密码

    database.js

                    2.  在etherdata.js类中,需要注意的有以下几点: 

                        ①contractAddress要是你部署的智能合约上的address(在1.3.3步骤中通过cloudnoteservice查询时有个address,填写那个地址)

                        ② gasprice不应该过高,否则交易会失败,进行操作的时候会抛出error

                        ③ http://localhost:18545是你搭建spectrum链的ip地址,根据自己情况而定

                        ④ getTransactionCount()中的地址是你通过personal.newAccount()创建的地址,或者说你部署到哪个spectrum链的地址上

    2.测试:

            浏览器测试:找到bin目录瞎的www.js文件,运行,在浏览器上输入

    http://localhost:3000/addNote?id=user123&name=hello&content=world,如果能看到以下的界面,说明addNote方法执行良好

    test.png

               小程序测试:源码:note  

                    新增内容:

                    查看列表:

                3. 错误总结:

                            ①

                        解决方案:在etherdata.js 中的rawTx加上chainId这个属性

                    ②

    解决方案: 将1.5步骤中 etherdata.js 中的gasprice 适当调低。

    相关文章

      网友评论

        本文标题:在Spectrum光谱链上做小程序dapp开发(2)

        本文链接:https://www.haomeiwen.com/subject/wyfofqtx.html