区块链
文章平均质量分 71
未济2019
这个作者很懒,什么都没留下…
展开
-
[blockchain-049] eos区块解码时候出现的错误
1. block 1365455这个区块,有一个transaction的memo的字符串里有一个换行符号,导致解码错误。2. block 2574386这个区块出现了一个特殊字符,不能解码成utf-8,导致解码错误。...原创 2018-06-28 11:30:54 · 287 阅读 · 0 评论 -
[blockchain-036] 用c++编写一个智能合约
1.参考文献https://github.com/EOSIO/eos/wiki/Tutorial-Hello-World-Contract注意:编译eos之后,要"cd build; sudo make install",这样后文的编译才不会出现问题,否则会缺失很多头文件2.启动单节点eos测试网络./nodeos -e -p eosio --plugin eosio::wallet_api_pl...原创 2018-05-15 19:40:08 · 1371 阅读 · 0 评论 -
[blockchain-034]go写文件
package mainimport( "os")func main(){ file,err=os.Create("./a.txt") //为简便不处理err了 defer func(){file.Close()}() file.WriteString("abc") file.WriteString("\n")}原创 2018-05-08 19:08:23 · 377 阅读 · 0 评论 -
[blockchain-033] go读取命令行参数
package mainimport( "flag" "fmt")func test(){ flag.Parse() for i:=0; i < flag.NArg();i++{ fmt.Println(flag.Arg(i)) }}func main(){ test()}原创 2018-05-08 19:04:16 · 143 阅读 · 0 评论 -
线上服务接入elk的规范
1. 目前暂时只支持 阿里云 线上的 同一个安全组 内的服务器2. log记录注意事项: 2.1 如果在一台机器上需要启动多个进程,多个服务,请确保每个服务每个进程的log文件不冲突,不会出现记录错误。 2.2 目前,elk监控log文件的目录的变动,以决定是否更新同步log。3. 使用elk的步骤: 3.1 让进程和服务写本地的log文件。 3.2 log文件的每一行,是...原创 2018-05-14 09:57:13 · 1251 阅读 · 0 评论 -
[blockchain-030]ubuntu 16.04下的tendermint 0.16双节点网络搭建和abci server开发和测试
1. abci server的go代码 1.1 基于tendermint 0.16.0 1.2 目录结构 server ├── main.go ├── MyApplication.go └── server 其中,server是编译出来的二进制可执行文件。 1.3 main.go源码如下-------------package mainimport ( "fmt...原创 2018-05-05 16:43:07 · 748 阅读 · 0 评论 -
[blockchain-028]go语言的从一个channel获取数据超时机制
1.代码来自tendermint2.代码段如下go 使用定时器从channel获取结果的写法timer := time.NewTimer(60 * 2 * time.Second) select { case deliverTxResMsg := <-deliverTxResCh: deliverTxRes := deliverTxResMsg.(types.TMEventData...原创 2018-04-27 10:36:43 · 595 阅读 · 0 评论 -
[blockchain-035]eos的部署安装智能合约
0.参考资料 https://github.com/EOSIO/eos/wiki1. eos的github地址https://github.com/EOSIO/eos2.下载eos源码https://github.com/EOSIO/eos.git3. readme.MD beta测试版本 支持7种os,推荐ubuntu 16.04 编译、运行、使用的文档参考 https://github...原创 2018-05-11 17:12:36 · 899 阅读 · 0 评论 -
[blockchain-027]一个极简的验证版paxos的go实现
1.参考资料《区块链核心算法解析》第15页。2.三个文件: main.go, service.go, client.go把三个文件放在同一个目录编译既可,没有使用第三方库。编译完既可执行。客户端和服务端在同一个进程。3.main.gopackage mainimport ( "time")func main() { done := make(chan int) go startS...原创 2018-04-23 19:06:45 · 596 阅读 · 3 评论 -
[blockchain-038] EOS多节点网络从安装到运行[资料收集]
1.EOS4.0 局域网测试网络搭建教程https://eosfans.io/topics/490局域网自己搭建一个测试网络节点1 192.168.195.144节点2 192.168.195.176节点3 192.168.195.191三个节点的genesis.json是一样的,内容如下:-----------{ "initial_timestamp": "2018-03-02T12:0...原创 2018-06-02 17:37:08 · 1563 阅读 · 0 评论 -
[block-039] EOS源码框架分析
1. eos的源码root目录,也就是./eos_build.sh所在的目录2. eos_build.sh是bash编译脚本,判断操作系统,判断编译参数等等。先执行cmake,再执行make。 root目录下的CMakeLists.txt,主要是设置一些参数,包含各子目录,用add_subdirectory命令包含进去。3. programs目录 3.1 programs/CMakeLists...原创 2018-06-04 09:01:19 · 1153 阅读 · 0 评论 -
[blockchain-040] eos主网如何定义
1.参考文献https://weibo.com/ttarticle/p/show?id=23094042465643936034482. 主网的几种定义: 2.1 首先承认原先在以太坊上的EOS账本,就是大众的EOS持仓都在多条主网上都会被承认。 2.2 分类1:共识起链。完完全全使用BM的代码,由社区共识达成启动方案,并且按照代码启动程序需要15%的投票来启动。这是BM原教旨主义的支...原创 2018-06-04 10:08:13 · 266 阅读 · 0 评论 -
[blockchain-047]eos 1.0.5版本搭建ecs节点同步 eos newyork超级的全链数据
1.参考流程 https://eosio.stackexchange.com/questions/725/how-to-vote-using-cleos/726#7262.步骤 2.1 下载源码,编译。2018-06-20 下载,源码版本1.0.5 2.2 mkdir /root/eos.data 2.3 vim /root/eos.data/genesis.json 其内容是https...原创 2018-06-20 15:09:14 · 1193 阅读 · 0 评论 -
[blockchain-043]eos dawn 3.0.0 性能测试
1. 编译eos 3 brian@brian-ThinkPad-T440:/opt/git-eos/eos-3$ git clone https://github.com/eosio/eos --recursive -b dawn-v3.0.0正克隆到 'eos'.cd eos./eosio_build.sh2. block one的测试流程 2.1 文档 https://gi...原创 2018-06-09 11:39:25 · 728 阅读 · 0 评论 -
[blockchain-042]eos 硅谷ecs docer编译 mongo存储
1.购买一个月的阿里云 美国硅谷可用区2 主机ubuntu 16.04 4核8g eos测试 docker和github速度非常令人满意,国内的太慢,不要用2. 安装docker 2.1 参考文献 https://docs.docker.com/install/linux/docker-ce/ubuntu/ sudo apt-get update sudo apt-get in...原创 2018-06-08 19:23:31 · 406 阅读 · 0 评论 -
[blockchain-046] 搭建一个单独的同步节点获取eos链上数据并进行查询
0.准备工作 两台ecs,安全组开通 9876和5555和8888端口 分别创建eos.data目录和logging.json,此处参考 eos性能测试。 1. 在np节点执行 ./nodeos -d ~/eos.data/producer_node --config-dir ~/eos.data/producer_node -l ~/eos.data/logging.json --htt...原创 2018-06-14 19:48:04 · 1701 阅读 · 1 评论 -
[blockchain-041]如何从eos主网获取所有的帐号名及其eos币的数量
主要思路:自建一个eos节点,选择eos主网的一个超级节点进行同步,同步完成之后,从eos数据库读取数据。数据也可能根据配置写入到mongodb,这样查询可能更方便一些。如何从eos数据库读取记录?参考eos源码里的readonly::get_key_accounts函数。其他以此类推。未完待续。...原创 2018-06-06 07:07:34 · 2701 阅读 · 0 评论 -
[blockchain-037] cmake的简单demo
1. 安装cmake2. 创建一个目录 mkdir demo cd demo3. 在demo目录下创建两个文件 3.1 main.cc#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ printf("hello"); return 0;} 3.2 ...原创 2018-05-29 15:47:15 · 285 阅读 · 0 评论 -
[blockchain-044]iota:搭建full node step by step
# 1.iota## 1.1 这里提供基本信息https://coinmarketcap.com/currencies/iota/## 1.2 官网https://www.iota.org/## 1.3 iota exploreriota浏览器 https://thetangle.org/statistics/richest-addresses 持有token最多的地址## 1.4 iota...原创 2018-06-12 09:40:25 · 849 阅读 · 0 评论 -
[blockchain-025] go语言的channel极简例子
package main//这个例子本质是同步模式,一个goroutine负责写,一个goroutine负责读。 import ( "fmt" "time")func main() { done := make(chan struct{}) c := make(chan int) go func() { for i := 0; i < 5; i++ { c &...原创 2018-04-19 14:24:12 · 249 阅读 · 0 评论 -
[blockchain-022] go语言的极简jsonrpc示例
1.参考资料https://gist.github.com/nicerobot/89547642.目录和源码2.1 主目录是go-jsonrpc-thin,子目录和源码文件是.├── client│ └── main.go├── server│ ├── main.go└── shared └── SharedStructures.go2.2 SharedStructures.gopa...原创 2018-04-06 17:42:43 · 208 阅读 · 0 评论 -
[blockchain-021] go语言的极简rpc示例
1.参考文献https://parthdesai.me/articles/2016/05/20/go-rpc-server/2. 极简实现2.1 主目录是go-rpc1,子目录和文件结构如下├── client-http│ └── HttpClient.go├── server_http│ ├── HttpServer.go└── shared └── SharedStructs....原创 2018-04-06 11:08:09 · 309 阅读 · 0 评论 -
[blockchain-002] bitcoin源码编译和安装
1.参考文档http://www.cnblogs.com/wintersun/p/3813424.html2.在github的源码地址https://github.com/bitcoin/bitcoin3.获取源码git clone https://github.com/bitcoin/bitcoin.git4.编译安装cd bitc原创 2018-01-10 16:29:48 · 738 阅读 · 0 评论 -
[blockchain-004]bitcoin源码分析要解决的关键问题
bitccoin源码解读1.生成一对公钥私钥,也就是钱包。2.挖矿: 2.1 以什么方式从哪里得到交易记录,自定义规则选择哪些交易记录? 2.2 计算hash 2.3 成功挖了一个区,提交到哪里,如何确认全网接受了?挖出来的新区块如何换成比特币进帐? 2.4 从哪里,自动更新全网的新块3. 交易: 3.1 我A向一个人B付款,这个消原创 2018-01-12 18:59:37 · 636 阅读 · 0 评论 -
[blockchain-011] tendermint使用和安装
1. 安装go 1.9 1.1 下载 https://golang.org/doc/install?download=go1.9.4.linux-amd64.tar.gz 1.2 解压缩到目录 /home/bri/usr/go-1.9 tar -C /home/bri/usr/go-1.9 -xzf go1.9.4.linux-amd64.tar.gz 1.3 修改/etc/...原创 2018-02-11 20:30:31 · 2210 阅读 · 0 评论 -
[blockchain-012] tendermint 安装和文档读书笔记
1. 安装go 1.9 1.1 下载 https://golang.org/doc/install?download=go1.9.4.linux-amd64.tar.gz 1.2 解压缩到目录 /home/bri/usr/go-1.9 tar -C /home/bri/usr/go-1.9 -xzf go1.9.4.linux-amd64.tar.gz 1.3 修改/etc/...原创 2018-02-19 17:40:36 · 2149 阅读 · 2 评论 -
[blockchain-020]一个go语言的极简区块链
1.参考文献https://studygolang.com/articles/11399?fr=sidebar2.源码跟参考文献相比略做修改。package mainimport ( "bytes" "crypto/sha256" "fmt" "strconv" "time")//一个区块type Block struct { Timestamp int64 Da...原创 2018-04-05 18:28:05 · 598 阅读 · 0 评论 -
[blockchain-024] tendermint的一段代码的解释
package types // nolint: goimportsimport ( context "golang.org/x/net/context")// Application is an interface that enables any finite, deterministic state machine// to be driven by a blockchain-...原创 2018-04-14 19:32:06 · 395 阅读 · 2 评论 -
[blockchain-019]《计算机程序的构造和解释》sicp的scheme安装
1.安装sudo apt-get install mit-scheme2.运行scheme进入命令行,然后执行(+ 1 2) 回车,显示3,表明安装成功。原创 2018-03-31 16:06:48 · 261 阅读 · 0 评论 -
[blockchain-018] tendermint硕士论文
1.Tendermint: Byzantine Fault Tolerance in the Age of Blockchains2.replicated state machine 最常见的分布式公式方案。一个状态机在多个进程之间进行复制,即使有些进程失效/失败,也不会影响这个状态机。这个状态机的输入是一组transaction,每个transaction是原子操作。3.写的有点模糊,无法第一眼...原创 2018-03-30 15:02:40 · 362 阅读 · 0 评论 -
[blockchain-017]go和tendermint 一系列东西
1. 安装go 1.9 1.1 下载 https://golang.org/doc/install?download=go1.9.4.linux-amd64.tar.gz 1.2 解压缩到目录 /home/bri/usr/go-1.9 tar -C /home/bri/usr/go-1.9 -xzf go1.9.4.linux-amd64.tar.gz 1.3 修改/etc/...原创 2018-03-30 13:56:46 · 615 阅读 · 0 评论 -
[blockchain-016]cosmos源码分析
1.在github clone cosmos的源码到go的src目录下源码https://github.com/cosmos/cosmos官网https://cosmos.network/2.在cosmos的examples目录下有basecoin目录,这里是basecoin的源码3.源码分析 3.1 服务端main函数,在cmd/basecoind/main.go 3.1.1 serve...原创 2018-03-30 11:25:48 · 1100 阅读 · 0 评论 -
[blockchain-014] 双节点tendermint部署和运行分析
1. 两台物理机器192.168.1.244 root密码t5192.168.1.246 root密码t52. tendermint搭建 在tendermint/docs/examples这个目录,有四个节点的配置和文档,可以参考使用 2.1 编译出tendermint可执行文件,然后分别scp到245和246 2.2 在245执行 ./tendermint init,在root/.te...原创 2018-03-17 19:18:39 · 2071 阅读 · 3 评论