1.注册钱包
- 我们开发以个应用需要注册钱包
- 我们使用的是星云链,因此这里使用星云链官方提供的钱包,这里的钱包也可以使用
gate.io
- 首先在GitHub上面,把官方web钱包clone下来:https://github.com/nebulasio/web-wallet
- 然后直接本地打开
index.html
- 然后一直下一步就行了,这里需要记住密码要保存好,还有本地生成文件
- 其实这里如果你有服务端可以把找个钱包放在服务器就行啦
-
这里可以切换环境
- 需要注意他有正式环境和test环境的区分,我们是先发布到test环境测试没问题了,在上传到正式
这里的合约就是我们写好的合约代码发布测试的地方
2.部署和写自己的合约
-
简单来说合约就是区块链后台给你提供的封装的增删该查的
sdk
,使用它来进行操作,当你提交合约成功之后,会分配给你一个后台的存储区域的地址,然后你后面存储的数据都在这个地址上 -
制作一个有文本框和按钮的Web页面。
-
制作一个只需要用JavaScript编写几十行代码的智能合约。
- 完成Web页面与智能合约的交互。
- 具体的代码实例看官方的demo即可 https://github.com/15010159959/super-dictionary/blob/c5ee92e5b82f9cec5d43f86f275adcb981063449/smartContract/super_dictionary.js
'use strict'
var LetterItem = function(text){
if(text){
var obj = JSON.parse(text);
this.title = obj.title;
this.content = obj.content;
this.author = obj.author;
}
};
LetterItem.prototype = {
toString : function(){
return JSON.stringify(this)
}
};
var TheLetter = function () {
LocalContractStorage.defineMapProperty(this, "data", {
parse: function (text) {
return new LetterItem(text);
},
stringify: function (o) {
return o.toString();
}
});
};
TheLetter.prototype ={
init:function(){
},
save:function(title,content){
if(!title || !content){
throw new Error("empty title or content")
}
if(title.length > 20 || content.length > 500){
throw new Error("title or content exceed limit length")
}
var from = Blockchain.transaction.from;
var letterItem = this.data.get(title);
if(letterItem){
throw new Error("letter has been occupied");
}
letterItem = new LetterItem();
letterItem.author = from;
letterItem.title = title;
letterItem.content = content;
console.log("post",JSON.stringify(letterItem));
this.data.put(title,letterItem);
},
get:function(title){
if(!title){
throw new Error("empty title")
}
return this.data.get(title);
}
}
module.exports = TheLetter;
简单来说就是提供了,保存的方法,这里写的方法我们发布之后,就可以远程调用了(参考自:wing的地方酒馆)这里就可以理解为后台代码
3.部署智能合约
-
领取测试网的测试币。在https://testnet.nebulas.io/claim/ 每天可以领取1NAS的测试币,部署合约是还要花NAS币的,这里需要注意
- 这里打开我们自己的钱包,找到合约-部署就可以了,部署成功会返回一个has值,这个你需要保存好
- 然后在点击执行,测试我们的后端代码,这里的函数就是后台提供的方法名字,参数就是个数组就行了
4.开发前端页面
- 这个前端界面可以参考官方的就可以 http://39.105.36.104:8080/index.html
- 这里有一点需要注意吧代码的
var dappContactAddress = "n1f5647WBNjro6WsbomH55qTN9BFZWyCgEt";//这里是你合约的地址,就是你存储的地址注意正式环境和test环境是不一样的需要替换