
区块链
文章平均质量分 79
尹成
尹成微信18510341407,助理微信18514203048
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
压力测试
压力测试概述压力测试用来检测函数(方法)的性能,和编写单元功能测试的方法类似,但需要注意以下几点:文件名命名规则:xxx_test.go函数名命名规则:func BenchXxx(b *testing.B),其中XXX可以是任意字母数字的组合,但是首字母不能是小写字母函数内必须使用b.N进行轮询测试函数内可以选择使用b.ReportAllocs()汇报内存开销在GoLandIDE中你...原创 2018-11-16 11:18:27 · 1325 阅读 · 0 评论 -
1.01 容器技术和docker简介
1.部署演变在一台物理机部署Application在windows或者linux操作系统部署ApplicationOperating System操作系统如win10,Physical server如机器部署比较慢,要准备物理服务器 服务器要部署到机房,安装操作系统,安装Application,需要各种依赖 成本非常高,买物理服务器 资源浪费,CPU和内存根本用不完很难迁移...原创 2018-12-10 09:28:58 · 429 阅读 · 0 评论 -
1.03 docker的镜像和容器
1.docker的底层技术实现架构docker提供了一个开发、打包、运行app的平台把app和底层infrastructure(基础设施)隔离开2.docker enginedocker engine是核心,里面有后台进程,叫dockerd,提供了REST API接口,还提供了CLI接口,可以看出,docker就是一种C/S的架构3.整体架构Client是客户端,命令行用的...原创 2018-12-10 09:31:12 · 507 阅读 · 0 评论 -
1.04 docker的网络
1.网络分类单机 Bridge Network Host Network None Network多机 Overlay Network2.网络基础公有IP和私有IP public IP:互联网上的唯一标识,可以访问Internet private IP:不可在互联网上使用,仅限机构内部使用 A类:10.0.0.0~10.255.255.255(10.0.0...原创 2018-12-10 09:32:08 · 464 阅读 · 0 评论 -
1.05 docker的持久化存储和数据共享
1.数据持久化引入container可以读和写,image只读但是container写入的数据只在container内,如果将容器删除,那么数据丢失如果是数据库的容器,数据丢失后果很严重2.数据持久化方案基于本地文件系统的Volume,可以执行docker create或docker run时,通过-v参数将主机的目录作为容器的数据卷,这部分功能便是基于本地文件系统的volume管...原创 2018-12-10 09:32:47 · 417 阅读 · 0 评论 -
1.06 docker Compose多容器部署
1.docker部署wordpress将dockerHub上的wordpress和mysql拉取到本地创建mysql的container,端口不需要映射,数据库是wordpress去访问创建wordpress的container,映射到本地的8080端口访问IP:8080,可以看到wordpress的欢迎页选中文,继续填写信息,点击安装点登录,通过两个image成功部...原创 2018-12-10 09:33:52 · 518 阅读 · 0 评论 -
1.07 容器编排docker Swarm
1.编排swarm简介学习怎么将docker用于生产环境,前面学的是用于本地测试环境之前学的是通过docker客户端连接安装好docker的linux机器,如下图生产环境下机器和容器都非常多,怎么去管理容器?怎么横向扩展?如果容器down了怎么恢复?如何更新容器不影响业务?如何监控容器?如何调度容器的创建?如何保护隐私数据?swarm是内置于docker的容器编排工具swarm集群...原创 2018-12-10 09:34:26 · 532 阅读 · 0 评论 -
1.08 docker Cloud和docker企业版
1.docker公司业务介绍2017年初,docker分为社区版和企业版docker公司还提供培训,网址:https://training.docker.com/docker公司还提供认证,网址:http://success.docker.com/类似于苹果的AppStore,网址:https://store.docker.com/可以通过web界面创建service,网址:ht...原创 2018-12-10 09:35:05 · 552 阅读 · 1 评论 -
1.09 容器编排Kubernetes
1.kubernetes介绍Kubernetes是Google开源的容器集群管理系统简称k8s,2017年底,docker宣布支持k8s,宣布了k8s取得了阶段性胜利2014年7月,Docker收购Orchard Labs,由此Docker公司开始涉足容器编排领域,Orchard Labs这家2013年由两位牛逼的年轻人创建的公司,有一个当时非常著名的容器编排工具fig,而这个fig就是d...原创 2018-12-10 09:35:43 · 485 阅读 · 0 评论 -
2.01 hyperledger fabric概念
1.什么是hyperledger超级账本是Linux基金会在2015年发起的“开放式账本”开源项目,“开放式账本”是为推进区块链技术应用于金融领域及交易验证方向的发展而发起的,“开放式账本”随后被更名为“超级账本”其加入成员包括:荷兰银行(ABN AMRO)、埃森哲(Accenture)等十几个不同利益体,目标是让成员共同合作,共建开放平台,满足来自多个不同行业各种用户案例,并简化业务流程...原创 2018-12-10 09:36:29 · 660 阅读 · 0 评论 -
2.02 hyperledger fabric入门
1.需要的环境dockerdocker-composeGogitnpm和nodejs2.下载fabric组件的Docker镜像hyperledger的docker商店地址:https://store.docker.com/profiles/hyperledger下载peer、orderer、tools、baseos和ccenv五个组件3.下载fabric源码库创建目录...原创 2018-12-10 09:37:08 · 590 阅读 · 0 评论 -
2.03 hyperledger fabric系统架构
1.系统架构API:提供了GRPC调用,GRPC是跨语言的RPC框架SDK:在API基础上,提供了SDK,封装了各种语言,例如Go、node.js、python和Java等,官方推荐node.js事件:区块链是分布式系统,各个节点达成一致需要消耗很长时间,fabric使用异步通信模式开发,触发回调函数执行身份:任何一个请求都要通过签名验证,依托于底层的成员服务,是联盟链的认证功能,例如...原创 2018-12-10 09:37:55 · 818 阅读 · 0 评论 -
2.04 hyperledger fabric共识排序
1.共识机制介绍交易背书:客户端节点根据背书策略,选择背书节点,发送交易提案,背书节点调用智能合约执行模拟交易,执行完成后,经过签名背书,返回给客户端节点,整个过程是模拟的交易排序:排序节点接收已经签名背书的交易,确定交易顺序,将排好序的交易打包成区块,分发给其他组织主节点,排序节点不会去关心交易是否正确,只负责排序和打包区块交易验证:区块存储和交易验证不冲突,区块存储前进行交易验证,fa...原创 2018-12-10 09:38:28 · 1291 阅读 · 0 评论 -
2.05 hyperledger fabric账本存储
1.账本存储概述peer节点账本存储图如下左边区块链是狭义上的区块存储,底层是一个文件系统,区块并不是存储在数据库,而是直接存储为文件右下角的区块索引用于查询区块,将区块属性与区块位置关联,例如根据区块哈希、高度、交易ID查询区块区块索引的实现使用了levelDB,是一个内嵌的数据库fabric中不是一个区块单独存一个文件,所以需要区块索引去查找右上角状态数据库是区块链上的最新数据...原创 2018-12-10 09:39:00 · 2919 阅读 · 0 评论 -
2.06 hyperledger fabric智能合约
1.智能合约执行环境安全隔离、不受第三方干扰链码 是fabric应用层的基石,是应用层与底层的桥梁 执行环境是一个独立的docker环境 通过gRPC协议与背书节点连接,只有背书节点才会运行链码链码的生命周期 打包 安装 实例化 升级 交互链码的交互流程系统链码 LSCC(Lifecycle System Chaincode),用于管理链码的生命周期...原创 2018-12-10 09:39:41 · 938 阅读 · 0 评论 -
2.07 hyperledger fabric链码案例
1.链码入门hello.go安装链码实例化链码调用链码2.账户相关链码payment.go安装链码实例化链码查询账户转账查询账户存款查询账户取钱查询账户3.贷款还款相关链码Trace/*安装链码实例化链码运行测试贷款还款4.公民身份信息相关链码citizens.go安装链码实例化链码身份录...原创 2018-12-10 09:43:27 · 1331 阅读 · 0 评论 -
2.08 hyperledger fabric完整案例
1.fabric开发流程需求整理合约编写合约部署合约交互外部服务编写2.需求分析开发一个资产转让功能模块平台功能 用户开户和销户 资产登记,解决资产上链和用户绑定资产 资产转让,资产所有权的变更 查询功能,用户查询、资产查询、资产变更历史查询3.合约编写assetsExchange.go4.合约部署关闭docker生成通道的创世交易查看...原创 2018-12-10 09:43:59 · 3302 阅读 · 1 评论 -
2.09 java编写智能合约
1.本地环境准备需要有JDK和Maven需要安装Gradle,Gradle是一个基于Maven概念的项目自动化构建开源工具面向Java应用为主,当前其支持的语言限于Java、Groovy、Kotlin和Scala下载地址:https://gradle.org/releases/将下好的包直接解压,然后设置环境变量GRADLE_HOME,添加到PATHcmd输入gradle -v查...原创 2018-12-10 09:44:28 · 3261 阅读 · 0 评论 -
2.10 java SDK的使用
1.centOS7安装node.js杀掉活跃的容器官网https://nodejs.org/en/下载tar.xz包,然后解压设置node为全局变量设置npm为全局变量查看版本2.搭建网络赋予执行权限启动网络进入容器查看通道,已经存在3.链码编写和测试编写nodeExample.go安装链码实例化链码初始化车辆信息查...原创 2018-12-10 09:45:00 · 1722 阅读 · 0 评论 -
2.11 node.js SDK的使用
1.centOS7安装node.js杀掉活跃的容器官网https://nodejs.org/en/下载tar.xz包,然后解压设置node为全局变量设置npm为全局变量查看版本2.搭建网络赋予执行权限启动网络进入容器查看通道,已经存在3.链码编写和测试编写nodeExample.go安装链码实例化链码初始化车辆信息查询车辆信息查询...原创 2018-12-10 09:45:32 · 1148 阅读 · 1 评论 -
3.01 EOS概念
1.什么是EOSEOS是当下最火的区块链技术,被社会广泛看好为下一代区块链3.0不同于以太坊和超级账本的学习,EOS的主语言是C++EOS期望做加强版的以太坊,一个高吞吐量的智能合约平台以太坊虽然功能齐备,但受制于其设计选择,15秒的出块速度导致交易吞吐量 远远不能达到大规模实用的程度,大约只有30~40TPS(交易/秒),而EOS则选择 了不同的技术路线,目标是达到可观的百万TPSE...原创 2018-12-11 11:14:39 · 692 阅读 · 1 评论 -
3.02 EOS核心框架
1.EOS核心框架介绍架构图EOSIO程序模块图2.区块结构Merkel Tree:比较两个节点数据是否同步,直接比较树根是否一样就可以,EOS节点数据是用Merkel Tree组织的如果2个节点比较不一样,可以快速查找树中哪个节点不一样,能快速定位修改互相验证时,密码学中叫零知识证明,比较Merkel Tree是否相同就可以EOS通过Merkle Tree做验证,成本比比...原创 2018-12-11 11:15:00 · 760 阅读 · 0 评论 -
3.03 模块插件介绍
地址:https://github.com/EOSIO/eos/tree/v1.0.8编译模块主程序模块依赖库模块插件模块智能合约模块测试模块docker定制模块文档说明模块,这个就不细说了学院Go语言视频主页https://edu.youkuaiyun.com/lecturer/1928[清华团队带你实战区块链开发](https://ke.qq.com/course/344443...原创 2018-12-11 11:15:33 · 678 阅读 · 1 评论 -
3.04 账户体系与安全设计
EOS账户依赖于ECC加密算法虚拟机管理智能合约与EOS账户体系有交叉1.账户、权限管理EOS权限管理2.钱包(Wallet)存储密钥Lock和Unlock状态,需要密码去解锁签名授权,转账时实际上就是做一个签名3.账户(Account)可读名字(12字符),被个人或组织(多人)拥有多权限管理、支持多签名、支持自定义权限可定义Action和Handler...原创 2018-12-11 11:15:44 · 1118 阅读 · 0 评论 -
3.05 EOS单点测试网络
1.获取源码编译搭建下载源码切换分支运行安装程序编译完成如下进行安装进入eos/build目录,输入 make test 进行验证,所有模块验证通过,证明EOS搭建完成2.通过docker搭建EOS环境前提:安装了docker和docker-compose从官方拉取eos-dev标记1.0.8为latest3.启动单节点测试网络创建两个volume...原创 2018-12-11 11:15:56 · 696 阅读 · 1 评论 -
3.06 EOS智能合约(上)
1.eosiocpp工具介绍是一个 C++ 生成 WASM 和 ABI 文件的编译工具有很多依赖库,因此需要在eosio/eos-dev 的环境中才可以运行2.abi介绍ABI是Application Binary Interface的缩写,它的意思是程序二进制接口一个ABI是不同二进制片段的连接纽带,它定义了函数被调用的规则EOS中的ABI除了约束action之外,还可以约束t...原创 2018-12-11 11:16:09 · 648 阅读 · 1 评论 -
3.07 EOS数据库应用
1.EOS数据库介绍数据库是辅助智能合约存储一些状态和数据数据库运行在内存中,是KV存储(区块链就是分布式的KV存储问题),通过multi_index与数据库交互建表和操作,multi_index可以理解为一个表数据库是按不同账户分不同空间,Account里实际上还有scope,scope中有tableEOS数据库的重点 数据表定义 多索引使用 迭代器使用2.数据表...原创 2018-12-11 11:16:23 · 1002 阅读 · 0 评论 -
3.08 EOS智能合约(下)
1.什么是李嘉图合约李嘉图合约是一种特殊的结构化文本,主要用作交易中明确双方的意图,是做交易之前查看的要遵循的规则以后正式合法的合约都要有李嘉图合约EOS白皮书中所提到的,所有的交易,都会是基于对宪法同意的基础之上进行的,这就意味着,EOS启动后,用户所有的链上行为,都会涉及到李嘉图合约简单说,李嘉图合约是一个文件,定义了通过互联网发行的某种类型的价值,标识发行人和签署人,将发行人认为合...原创 2018-12-11 11:16:41 · 937 阅读 · 0 评论 -
3.09. EOSJS SDK
1.eosjs介绍eosjs是与EOSIO区块链网络交互的方法库通过eosjs可以程序化与区块链网络交互,代替cleos命令行交互2.eosjs基本依赖eosjs-api nodeos的远程API调用 这个lib库是对区块链网络坐查询,不需要签名认证eosjs-ecc 私钥、公钥、签名、AES算法、加密解密等的实现 验证公私钥配对、加密解密eosjs-keyg...原创 2018-12-11 11:17:37 · 1236 阅读 · 2 评论 -
3.10 EOS智能合约案例实践
1.Dapp框架与开发传统Web开发模式如下程序员负责的工作: 写后端服务 设计数据库表 前端人员开发页面 前后端接口交互的开发 编写缓存服务区块链开发模式如下数据是存在内存数据库和区块上会给前端提供SDK下图是2个Instance,也就是2个节点程序员负责的工作: 编写智能合约 前端人员开发页面 编写SDK调用回顾EOS开发流程2.Oasi...原创 2018-12-11 11:18:03 · 1630 阅读 · 1 评论 -
分享一波golang公链学习资料,英语能力不行的人有福了
分享一波golang公链学习资料,英语能力不行的人有福了尹成翻译注释版bitcoin-golang 源码 https://github.com/yinchengtsinghua/golang-bitcoin-chinese 尹成翻译注释版以太坊ethereum源码 https://github.com/yinchengtsinghua/go-ethereum-chinese 尹成翻...原创 2019-01-22 23:40:05 · 4327 阅读 · 9 评论