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

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

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

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))