超零协议(SERO)轻松入门——基于CENTOS7
1. 机器配置
以目前Beta上链的规模,满足以下配置
CPU 4线程以上
MEM 4GB以上
DISK 50G以上
就能很好的运行了。
#本文中测试机配置
----------------------------
OS : CENTOS7.3
CPU : Xeon E5-26xx v4 (C2T2)
MEM : 4GB
DISK: 50GB
----------------------------
2. 准备环境
安装Go语言和Git客户端
$ sudo yum install golang
$ sudo yum install git
注意,只支持 v1.10.x 以及以下golang版本,v1.11.x 不支持。
安装需要的C++依赖库
#安装boost库
$ sudo yum install boost
#可能还需要安装 gmp、libgomp、procps-ng
$ sudo yum install gmp libgomp procps-ng
3. 获取代码
创建GOPATH目录
$ pwd
... /root$ mkdir gopath
$ mkdir gopath/src
$ mkdir gopath/src/github.com
$ mkdir gopath/src/github.com/sero-cash
$ export GOPATH=/root/gopath
$ cd gopath/src/github.com/sero-cash
访问go-sero项目链接,克隆代码:https://github.com/sero-cash/go-sero
$ git clone https://github.com/sero-cash/go-sero.git
访问go-czero-import项目链接,克隆代码:https://github.com/sero-cash/go-czero-import
$ git clone https://github.com/sero-cash/go-czero-import.git
4. 编译gero
$ ls
... go-sero go-czero-import
$ cd go-sero
$ make all
$ ls build/bin/gero
... build/bin/gero
可以见到build/bin下生成了可执行文件gero,如果要重新编译则执行
$ make clean
$ make all
5. 配置
有了gero可执行文件,我们就能运行SERO的后台服务与交互式控制台。
首先配置运行gero的环境
创建SERO数据存储目录
$ mkdir ~/sero-data
设置动态库加载路径
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GOPATH/src/github.com/sero-cash/go-czero-import/czero/lib
6. 启动后台服务
用gero可执行程序,目前可以启动四种不同类型的模式:
####启动dev模式
$ build/bin/gero --dev --datadir "~/sero-data" --ipcpath "~/sero-data/gero.ipc" > ~/sero-data/debug.log
在这种模式下只能通过手工连接其他的dev节点,挖矿难度非常小,且无限制。
####启动alpha模式
$ build/bin/gero --alpha --datadir "~/sero-data" --ipcpath "~/sero-data/gero.ipc" > ~/sero-data/debug.log
这种模式下会自动链接AlphaNet网络,并开始同步数据,AlphaNet网络是SERO内部测试网,挖矿需要许可证,如果有测试需求,可以发邮件给<gordon@sero.vip>申请 `挖矿许可证` 或者 `测试用SERO币` 。
####启动beta模式
$ build/bin/gero --datadir "~/sero-data" --ipcpath "~/sero-data/gero.ipc" > ~/sero-data/debug.log
这种模式下会自动链接BetaNet网络,并开始同步数据,BetaNet网络是SERO团队提供给社区公测用的网络,挖矿同样需要许可证,如果有测试需求,可以发邮件给<gordon@sero.vip>申请 `挖矿许可证` 或者 `测试用SERO币` 。
####启动Main模式
此模式目前不支持,当主网络上线时,才会提供出来 ...
####结果输出
只要看到`IPC endpoint opened`那句,就说明服务启动已经成功,现在可以启动控制台来连接后台服务。
7. 启动控制台
当加入attach参数时,gero可以作为控制台启动。
#后台启动gero服务
$ nohup build/bin/gero --dev --datadir "~/sero-data" --ipcpath "~/sero-data/gero.ipc" > ~/sero-data/gero.log &
#启动控制台
$ build/bin/gero --datadir "~/sero-data" attach
attach会让gero启动一个JS虚拟机驱动的交互式控制台
在其中可以运行复杂的js控制程序,退出控制台的指令是
> exit
8. 账户管理
创建账户指令
> personal.newAccount("[PASSWORD]")
... "[PK]"
其中 [PASSWORD]
是这个账户的密码,因为SERO不会直接存储用户的私钥,当5分钟没有任何操作,账户会被锁定,这时要用该账户进行转账,则需要用此密码对账户解锁。创建用户指令会返回该用户公钥。这个公钥可以作为转账地址。
查看所有公钥
> sero.accounts
... ["[PK0]","[PK1]",...,"[PKn]"]
这个属性返回当前钱包中所有账户的公钥。
解锁账户
> personal.unlockAccount("[PK]","[PASSWORD]")
其中[PK]
是该用户公钥
获取账户资产余额
> sero.getBalance("[PK]")
... {tkn:{...},tkt:{...}}
其中tkn
按分类显示账户所有Token
余额,tkt
按分类显示账户所有持有的Ticket
。
9. 挖矿
####启动挖矿
> miner.start()
####停止挖矿
> miner.stop()
####控制台休眠
> admin.sleepBlocks(num)
参数num
是需要休眠的区块数,这个方法一定要在挖矿开启的情况下调用,否则将一直阻塞系统。
需要说明的是,挖矿所获得的奖励,默认条件下,会进入sero.accounts
的第0个账户的 公钥 生成的 暂存地址(PKr) 中。
10. 生成交易
当accounts[0]
中已经有挖矿所得的奖励的时候,既可以转账给其他账户。
转账指令
sero.sendTransaction({
from:"[SRC_PK]",
to:"[TARGET_PK]",
value:[NUM_OF_TA]
})
… “[TX_ID]”
其中[SRC_PK]是资金发出方公钥,[TARGET_PK]是资金接受方公钥,[NUM_OF_TA]是最小单位的金额,SERO的最小单位是TA,换算单位是 `1 SERO = 10^18 TA`。返回值[TX_ID]是生成交易的ID。
交易生成之后,将同步给当前网络的其他节点,等待打包进区块中。在打包进区块之后,可以用下面的指令查询交易的详情。
##获取交易详情
> sero.getTransaction("[TX_ID]")
...[TX_DETAIL]
其中[TX_DETAIL]主要格式于下:
{from: "[SENDER PKr]",stx: {Desc_Z_Ins: [{Anchor: "[MERKLE AUTH ROOT]",AssetCM: "[ASSET COMMITMENT]",Nil: "[NULLIFIER ID]",Trace: "[TRACE ID]"Proof: "[ZKP PROOF]"}],Desc_Z_Outs: [{AssetCM: "[ASSET COMMITMENT]",OutCM: "[OUTPUT COMMITMENT]",PKr: "[RECIVER PKr]",Proof: "[ZKP PROOF]"}],}
}
11. 发布智能合约
SERO发布智能合约与以太坊的步骤是相似的。
####编译智能合约
使用SERO自己的智能合约编辑器,我们打开下面的链接:
http://remix.web.sero.cash
加载完毕后可以看到其中有一个发行匿名货币的例子seroToken.sol
。
右上角选择seroToken
,并点击Details
。
点击弹出框WEB3DEPLOY
旁边的拷贝按钮。
####修改初始化参数
在文本编辑器中修改初始化变量。
####安装智能合约
然后整个粘贴到控制台中,并回车,控制台立即会发送一笔交易来安装此智能合约。
####查看智能合约账户
交易成功后,既可以通过sero.getBalance
查看该智能合约所发行的token。
####调用智能合约
用智能合约本身定义的transfer
方法,可以将智能合约的匿名币发送给个人账户中。
####转发匿名资产
现在HELLOCOIN
的Token已经在account[0]
的账户中,account[0]
可以用普通的交易将它发送给其他的账户。但是一定记住必须在参数中指定币名cy:"HELLOCOIN"
sero.sendTransaction({from:sero.accounts[0],to:sero.accounts[1],value:500,cy:"HELLOCOIN"})
最后在accounts[1]的账户中可以看到他收到了500个HELLOCOIN
的资产。
这笔交易也是匿名的。
##最后
入门课先上到这儿,接下来我们会详细的讲解SERO跟以太坊在使用方式最主要的差异,以及Token和Ticket两种匿名资产在智能合约调用中的使用方式。
如果对SERO的原理和零知识证明算法感兴趣,可以在SERO的官网下载我们的白皮书。有任何建议也可以发送电子邮件到 gordon@sero.vip 咨询。
欢迎加入SERO的gitter社区,一起将SERO变得更好。
–
[官网] https://sero.cash
[白皮书 V1.0.6] http://sero-media.s3-website-ap-southeast-1.amazonaws.com/Sero_ENG_V1.06.pdf
[Twitter] https://twitter.com/SEROdotCASH
[Telegram] https://t.me/SeroOfficial
[Github] https://github.com/sero-cash/go-sero
[Gitter Community] https://gitter.im/sero-cash/Lobby?utm_source=share-link&utm_medium=link&utm_campaign=share-link
[SERO区块浏览器] https://explorer.web.sero.cash/blocks.html
[SERO智能合约编辑器] https://remix.web.sero.cash/
[SERO介绍视频] https://v.qq.com/x/page/s0792e921ok.html
[SERO vs Zcash加密速度对比] https://v.qq.com/x/page/r0796jotef8.html
超零协议(SERO)轻松入门——基于CENTOS7相关推荐
- 周立功阅读笔记-CANopen轻松入门基于DS301(一)
周立功阅读笔记-CANopen轻松入门基于DS301(一) CANopen阅读笔记 4.CANopen的预定义报文和ID分类 5.对象字典OD(Object dictionary) 6.网络管理NMT ...
- 【创新²】SERO超零协议项目进展双月报
发布版本 BetaNet-R1 2019-01-08 BetaNet-R2 2019-01-13 BetaNet-R2-HOTFIX.2 2019-01-19 BetaNet-R5 2019-01-2 ...
- 15w4k58s4引脚图_《51单片机轻松入门—基于STC15W4K系列》连载
1.1.4本书配套实验板及相关学习工具介绍 本书配套了2个实验板,一个作为主实验板,外形如图1-2所示,可以完成流水灯.定时器/计数器.串口通信.I2C通信.SPI通信.按键.数码管.LCD1602液 ...
- AI轻松入门,AI零基础入门,AI初级教学,
2020的下半年已经开启了,大家还记得美剧<疑犯追踪>(Person of Interest)中贯穿全剧的机器宝宝么?从开始的训练学习,进化到可以自我更新.自我维护.自我修复,乃至最终进化 ...
- 手绘插画零基础怎么学?带你点线面轻松入门!
手绘插画零基础怎么学?带你点线面轻松入门!自学插画,可以这样说,说有100个想零基础自学插画的人,有99个入门即劝退,倒在了基础练习上,枯燥.乏味.惰性.欲望等等都会让你没法坚持下去,但万丈高楼平地起 ...
- 视频教程-8小时Python零基础轻松入门-Python
订阅后:请点击此处观看视频课程 视频教程-8小时Python零基础轻松入门-Python 学习有效期:永久观看 学习时长: 525分钟 学习计划:9天 难度:低 「口碑讲师带队学习,让你的问题不过 ...
- 零基础学习嵌入式入门以及项目实战开发【手把手教+国内独家+原创】
零基础学习嵌入式入门以及项目实战开发[手把手教+国内独家+原创] 独家拥有,绝对经典 创 科 之 龙 嵌入式开发经典系列教程 [第一期] 主讲人: ...
- 零基础编程入门python视频-Python编程零基础小白快速入门完整全系列精品课
1. 课程咨询加老师助理微信:助理1微信: chenjinglei88 ,助理2微信: omf6757 2. 决定购买并想得到陈敬雷老师亲自指导(课程或自己项目难题均可)加老师微信: chenjing ...
- 码匠编程:零基础从前端入门到前端开发工程师路线
一.前端学习路径规划 下面是一个学习线路图,其实还有很多的技术导图中没有涉及到,对于初学者来说,能够掌握上边的知识点已经很不错了. 零基础从前端入门到前端开发工程师路线 二.入坑前的三问 想要入前端的 ...
最新文章
- ssm 实现房屋租赁系统
- PHP开发移动端接口(增强版)
- java代码编译之后是如何运行的?不知道这些,面试官问你jvm问题,你只能懵圈
- 2021年程序员1月薪资大幅度上涨,你的2021有奔头了吗?
- 算法设计与分析——贪心算法——活动安排问题
- java 确定对象的引用_JVM学习笔记之了解对象存活判断和4种引用【三】
- php算法和数据结构
- c#获取Windows Mobile短信
- CISA 发布关于 Treck TCP/IP 栈中新漏洞的 ICS 安全公告
- Kotlin 函数(普通函数)
- 金山毒霸推新产品金山卫士 正面狙击奇虎360
- MySQL:数据完整性
- 2022湖南株洲服饰产业数智互联网峰会暨湖南服饰产业互联网高峰论坛成功举办
- 三星手机android版本升级包,三星平板电脑N8000闪存机将Android版本升级到7.1的过程记录...
- 【x86架构】APIC -- 高级可编程中断控制器
- python tableau工作流_【干货】五分钟Get到Tableau五个实用小技巧
- bmi计算 python_python tkinter bmi计算
- 浅谈ThreadPoolExecute(JDK8)
- python pdb_pdb-python
- Mac os下时间戳转换