自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jalins的博客

记录个人学习的点滴

  • 博客(34)
  • 资源 (2)
  • 收藏
  • 关注

转载 cosmos费用代码photon

一、介绍在Cosmos中,使用的代币是Atom,这个基本上都没有什么不了解。但是,在新的经济模型中,Cosmos又引入了一种费用代币,在前面提到过的,名字叫做Photon。基本上大家都明白的是,原生代币可以用来创建一整套围绕着区块链本身的经济模型的基础。比如以太坊,通过以太币,衍生出gas控制,挖矿机制等。同理,很容易理解Atom代币本身,但是Photon这个费用代币又是什么?他来干什么?Ph...

2022-03-04 23:56:04 256

原创 区块链100篇之将fabric部署在k8s上

有了上一篇的基础,这一篇就尝试将fabric部署在k8s上,以下的操作的前提条件是自己已经对docker-compose部署fabric比较熟悉了,可以先搞清楚fabricase目录下的fabric_raft项目。1.修改DNS在真正开始部署之前,需要先解决一个问题,就是下面会使用到将unix:///var/run/docker.sock挂载进peer容器中,因为在1.4.X版本peer 容器需要调用 Docker 引擎的接口来构建和创建 chaincode 容器,但通过 docker.sock 创建的

2021-05-27 13:45:41 1638 6

原创 记一次k8s上节点之间的flannel网络不通的情况

测试将fabric运行在k8s网络上的时候遇到一个flannel的网络问题:运行在k8s-node2上的pod连接不上运行在k8s-node1上的pod,报错如下:Error: error getting endorser client for channel: endorser client failed to connect to peer0-org1:7051: failed to create new connection: context deadline exceeded首先想到的可能是我

2020-08-06 11:44:50 6205

原创 kubernetes的搭建

这一篇主要是为了将fabric部署到k8s上做前期铺垫,所有的步骤都是实操过的,是可以成功的。比较常见的k8s部署有二进制以及官方的部署工具kubeadm,这里使用的是kubeadm,准备三台服务器,Ubuntu系统(也可以是Centos系统),最好是2核2G,可以相互通信并可以访问外网。角色IP性能k8s-master192.168.10.112核4Gk8s-node1192.168.10.122核4Gk8s-node2192.168.10.132核4G

2020-07-30 17:30:13 429

转载 cosmos源码分析之七Tendermint架构分析

一、介绍Tendermint在网络有人把它当成一个共识,有人把它当成一个通信组件。这都是可以理解的。Tendermint融合了共识和网络通信部分。它类似于一个软件包,通过使用Tendermint可以很容易的开发一个和Cosmos相兼容的区块链(当然,如果使用Cosmos-sdk会更简单,但是会屏蔽更多的细节)。可以把它理解成Cosmos的一个底层架构,提供类似于基础服务的一个平台。Tenderm...

2020-07-18 11:46:20 711

转载 cosmos源码分析之六验证人

一、简介在整个cosmos中,验证人的角色是非常重要的,它们负责投票决定向区块链提交新的区块。或者可以理解成,没有验证人,就没有cosmos的区块,也就没有区块链之说。验证人可以由普通用户通过质押Atom来成为验证人,当然也可以接受别人的委托,这在上文已经分析过了,验证人由其总股权来决定即质押股权最多的前一百人会成为Cosmos的验证人。在Cosmos网络中,验证人的上限是一百,然后每年增长约...

2020-06-25 12:36:54 729

原创 区块链100篇之fabric的网络搭建(三)

这一节主要讲一下启动fabric网络的脚本编写以及tps的压测。脚本的讲解在fabric_raft这个目录中主要有四个脚本,分别是updown.sh、genesis.sh、cc.sh以及script/official.sh这四个脚本,其中updown.sh脚本就是启动或者宕掉fabric网络,genesis.sh这个脚本比较重要的是下面几行:1.这里是根据之前编写好的crypto-con...

2020-04-09 20:55:05 1026 11

原创 区块链100篇之fabric的网络搭建(二)

今天来讲一下关于fabric网络的节点yaml文件的编写,对于crypto-config.yaml文件以及configtx.yaml文件这里就不做细讲,只需大概知道前者是用于生成证书,后者是用于生成创世区块,应用通道的交易配置,各个组织的锚节点配置交易,详细的解释可以查看这个链接:configtx.yaml中文详解。在base目录中有两个文件,一个是peer-base.yaml文件另一个一个是d...

2020-04-07 20:19:23 651

原创 区块链100篇之fabric的网络搭建(一)

好久没写博客了,今天开始写关于fabric相关的博客,包括网络的搭建,链码的编写以及sdk的封装。搭建网络网络的搭建想分为三篇来写,第一篇写网络的搭建(这里是官方fabric-samples的简化版),第二篇是关于yaml文件的编写,第三篇是关于channel以及chaincode的操作脚本的编写。前期条件Git, Docker ,Docker-compose , Go1.c...

2020-04-03 12:59:01 3513

转载 cosmos源码分析之五委托人delegators

一、委托人在整个的cosmos中,委托人是一个非常重要的角色。通过委托机制可以达到全民参与的形式。这在EOS中也有体现。委托人,其实就是本身无力或者不想参与验证过程的人,他们把自己的权益(代币份额)交由某个人来代替执行自己的权益。在整个的网络中,验证人的数量是有限的,正如美国大选,总统和议员总是少数,但是他们是由美国公民选举出来的,可以把美国公民理解成委托人。当他们把票投给某个人时,某个人当选...

2020-01-04 14:12:01 458

转载 cosmos源码分析之四Staking模块

一、术语在前面的分析中提到了Cosmos有几个重要的机制,其中一个就是Staking。在分析这个模块之前,需要把一些相关的术语说明一下:Atom :Cosmsos原生权益代币(另外有一个费用代币Photon)。Atom holder:Atom代币所有者。Candidate:Validator的候选人,全节点的Atom代币所有者。Validator(验证人):由Candidate选举出来,...

2019-09-02 18:17:31 676

转载 cosmos源码分析之二整体流程

cosmos主要的源码其实是在SDK部分,听名字也可以理解出来,直接用这个SDK就可以写出一条不考虑底层的区块链来,但是,做为中继链的一个代表,理想和现实并不是那么完美的结合在一起。目前区块链的跨链的难点在于,网络异构、共识算法不兼容等,而解决这些问题,都意味着巨大的投入和风险。Cosmos的目的当然是想建立一个区块链互联网,所以他的想法是把网络和共识抽象出来,专门做了一层,这在上一篇也讲过了。...

2019-08-27 18:12:41 1057

转载 cosmos源码分析之一概述

最近在学习cosmos,在github上看到了一个很不错的教程,这里进行转发,如果有兴趣可以直接上github去看—分割线—一、cosmos简介cosmos这个项目是为了实现跨链而生的,在众多的跨链项目中,cosmos有它自己独特的特点,它把共识和P2P协议抽象出来,形成了一个单独的Tendermint的层或者叫模块。它采用Tendermint-BFT DPoS的共识引擎来解决跨链的共识问题...

2019-08-26 18:16:12 1774

转载 8.tendermint多节点组网

多节点组网概述在之前的课程内容中,我们的关注点集中在单一节点上的状态机逻辑实现上,这是因为 状态机复制的问题,是由tendermint负责完成的:我们在任何一个节点提交的交易请求, tendermint可以透明地帮我们在多个节点间实现同步。在这一章,我们将通过前面已经学习过的简单的ABCI计数应用来学习如何部署多个tendermint节点, 并进一步理解tendermint共识的建立过程。为了...

2019-06-18 19:50:59 1757

转载 7.tendermint多版本状态库

平衡二叉树简介在之前的课程中,我们简单地使用磁盘文件来保存状态,对于简单的学习或验证 而言没有问题,但在生产环境中,tendermint推荐我们使用其基于avl树实现的 多版本状态库。avl树得名于发明者G. M. Adelson-Velsky和Evgenii Landis,它是一种 自平衡二叉检索树,这包括两个核心的思想:二叉、平衡。二叉是指整棵树中每个节点最多有两个子节点,左侧的子节点值...

2019-06-18 19:39:08 465

转载 6.tendermint默克尔树

默克尔树概述在ABCI应用响应Commit请求消息时,需要计算并返回当前状态的哈希,以便Tendermint 将其打包到下一个区块头里(app_hash字段)。但是,如果我们还按原来的方法计算一个总体哈希,例如:hash: = tmhash.Sum(state), 就存在一个问题 —— 当查询某个特定账户的状态数据时,如何验证该状态是未被篡改的?显然,单独返回整个状态的哈希是不够的,但是我们...

2019-06-18 19:32:05 485

转载 4.tendermint加密算法

身份识别机制概述无论是中心化系统,还是去中心化系统,都有一个基本的问题:如何表征与验证用户的身份。在中心化系统中,这一问题是基于统一存储的用户表来实现的:每个用户在表中都有 一条对应的记录,而系统则通过验证用户输入的用户名和口令是否与用户表中的记录一致来识别 用户的身份:区块链则采用了另外一种不需要集中存储的方案来解决这一问题:每个用户由一对公/私钥来 标识,可以将公钥视为用户名,而私钥视...

2019-06-16 13:56:02 637

转载 3.状态机与ABCI

状态机tendermint采用的分布式计算模型为状态机复制(State Machine Replication),其基本 思路就是通过在多个节点间通过同步输入序列来保证各节点状态机的同步。状态机是一种在通信软件、游戏、工业控制等领域应用非常广泛的计算模型,用来抽象地表示一个 系统的演化过程。状态机由一组(有限或无限的)状态以及激发状态迁移的外部输入组成, 对于确定性状态机而言,在某一个时刻一定...

2019-06-15 14:37:49 822

转载 2.tendermint初识

2.1 概述tendermint虽然定位于引擎,但它其实是一个完整的区块链实现。在这一部分 的课程中,我们将使用一个最小化的ABCI应用,来熟悉tendermint的主要组成 部分,以及使用tendermint进行去中心化应用开发的主要流程和工具。下图列出了tendermint应用的主要构成部分:tendermint提供了一个预构建的同名可执行程序,我们将学习如何使用这个程序 来初始化节点...

2019-06-15 14:18:14 510 3

转载 1.tendermint简介

出于个人兴趣,最近开始学习共识引擎tendermint,在网上看到了一个讲tendermint的系列,很通俗易懂,所以在这里进行转载,原文地址为:[tendermint简介](http://gcblog.github.io/2018/12/10/tendermint%E7%AE%80%E4%BB%8B/) ,代码放在github上,地址:https://github.com/hellodian/tendermint-study,以下是正文部分。

2019-06-15 14:03:37 515

原创 区块链100篇之对称加密

对称加密对称加密是比较好理解的,将一个密钥通过加密算法对明文进行运算得到一个密文,使用同样的密钥作为解密算法的输入对密文进行解密即可得到原文,如下图所示:从这里我们可以看出对称加密有几个要素,分别是明文、加密算法、密钥、密文以及解密算法,明文即原始数据,密钥与明文一起作为加密算法的输入,是将明文进行打乱的规则,当然它也是跟密文一起作为解密算法的输入。密文自然就是加密算法得到的结果,这些都好理...

2019-05-27 13:34:19 1174

原创 区块链100篇之哈希算法

哈希算法维基百科的定义:是一种从任何一种数据中创建小的数字“指纹”的方法。简单的说就是将任意的数据通过一个函数转化成一个有着固定长度的数据串,这个数据串就叫哈希值。

2019-05-07 18:07:56 2272

原创 区块链100篇之第九篇--默克尔树(Merkle Tree)

中本聪在他的创世论文中一个概念,就是SPV,中文意思是简单支付验证,从这里我们可以看出SPV指的是“支付验证”而不是“交易验证”,那这两者有什么区别吗?简单的说就是支付验证只需验证该笔交易是否被确认过了,而交易验证是需要验证该笔交易是否满足一些条件如“余额”是否足够,还有该笔交易有没有存在双花等等一些问题,只有一切都没什么问题后该笔交易才算验证通过,可以看出交易验证要比支付验证更加复杂,所以它一般...

2018-05-28 00:44:45 32366 7

转载 十分钟教你开发EOS智能合约

这是一篇转载的文章,文章是在一个公众号上看到的,文章地址为https://mp.weixin.qq.com/s/OniYBJ6zbjxPrQYlZMhRWQ。EOS环境搭建和启动节点下面从EOS入门的环境搭建、编译运行一个智能合约、发送一些Aigsen,给大家做一些展示,希望能让非技术人员也有一些收获。首先下载EOS环境搭建和启动节点。这一步其实还是比较简单的,但是对于非技术人员,...

2018-05-06 21:12:22 827

原创 同步以太坊测试网络时导致C盘存储空间不足的解决办法

在尝试同步以太坊的的测试网络时可能会遇到一个问题,就是会发现同步下来的区块会默认存储在C盘底下导致磁盘空间不足,具体的路径如下:C:\Users\Administrator\AppData\Roaming\Ethereum 注:如果你找不到AppData,你需要打开隐藏文件这是以太坊区块默认的存储路径,也是以太坊钱包指定查找的路径。因为即使是测试网络的区块数据也是很多的,如下...

2018-05-06 19:10:40 1374 1

原创 区块链100篇之第八篇--智能合约

一、比特币的转账过程我在第五篇讲UTXO的时候,有提到比特币的转账过程,现在来回顾一下这个过程。 Bob想要转给Jack一百个比特币,Bob需要先创建一笔交易,因为这笔交易只有被矿工验证并打包进区块的时候才算完成交易,Bob在填写交易信息的时候除了需要提供支付比特币的数额以及双方的地址外,还需要提供自己的公钥以及用私钥生成的数字签名,还有就是上一笔交易的Hash(也就是B...

2018-04-30 15:34:15 1484

转载 区块链常见问题汇总

今天看到一篇关于区块链常见问题汇总的博客,觉得还不错,就把它转载过来。 1.问:什么是区块链?答:区块链(Blockchain)是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。 2.问:能通俗的解释一下什么是区块链吗?答:通俗一点说,区块链技术就指一种全民参与记账的方式。所有的系统背后都有一个数据库,你可以把数据库看成是就是一个大账本。那么谁来记这个账本...

2018-04-19 15:27:38 1884 1

原创 区块链100篇之第六篇--共识机制

共识共识的英文是Consensus,也可以翻译成一致或一致同意。维基百科对于共识的定义是:共识是指分歧双方搁置争议,达成能够被各方所接受的陈述(即使有时只是勉强接受)的社群解决方案。简单的说就是在一个群体中就某一个问题达成共识,一致同意采取某一种策略来解决这个问题,举个例子: 现在有一个班级,大家需要就什么时候拍毕业照进行投票,有两个方案,方案一是在5月1号拍毕业照,方案...

2018-04-18 18:44:02 1711

原创 区块链100篇之第五篇--UTXO

第一次看到UTXO是去年10月份的时候在一个微信群上有一个人说了一句话,说:”只要理解了UTXO就理解了比特币“,虽然这话有点夸大了,毕竟比特币并不只有UTXO这个技术,涉及到的东西还是很多的,但可以把这句话改成”只要理解了UTXO就能理解比特币的去中心化的含义“,因为UTXO区别于我们传统上的交易都是基于账户模型的,它是中本聪发明的交易模型,暂且叫UTXO模型,理解了UTXO的交易模型就能明白为什

2018-04-14 21:30:45 1378 1

原创 区块链100篇之第三篇--数字签名

数字签名类似于我们现实世界中的文件签名,我们把名字写在一个文件上,就代表了我们认可了这份文件,并且说明了这份文件是真是可靠的,那么问题是如果文件的署名被伪造了怎么办?在现实世界中,我们一般会找当事人直接验证这份文件是否是亲自签署的而不是被人假冒的,而在计算机世界中,保证数字签名不被伪造是通过数字摘要和非对称加密实现的,举个比特币中交易的例子:假如现在Alice发起一笔比特币转账,需要先将该交易进行...

2018-04-09 20:43:36 1433 1

转载 使用Hyperledger Composer将业务网络部署到单个组织的Hyperledger Fabric区块链上

转载请标明出处: http://blog.csdn.net/qq_27818541/article/details/78727076 本文出自:【BigManing的博客】前言先前准备1先满足下列环境要求2安装Hyperledger Composer开发工具3下载Hyperledger Fabric网络相关工具一 开启Fa

2018-01-05 17:34:43 2457

原创 Ubuntu的那点小事(一)

最近开始接触ubuntu系统,下面的笔记是我在ubuntu系统上安装软件时执行成功的一些步骤,我的系统是ubuntu 16.04,ubuntu 14跟ubuntu 12命令有一些不一样。安装nodejs环境$ wget https://nodejs.org/dist/v6.11.4/node-v6.11.4.tar.gz$ tar -zxvf node-v6.11.4.tar.gz$ cd no

2017-11-04 18:42:35 552

原创 关于Hibernate一级缓存的快照问题

Hibernate中的一级缓存的底层是以Map形式存在的,key是主键,value是对象,所以它的泛型为Map,key的泛型为串行化是因为主键都可被序列化。简单说完一级缓存的底层原理,下面开始讲快照问题。       当程序调用get()方法时,Session会先在缓存区找有没有存在对应的对象,如果是第一次调用,这时缓存区是空的,自然就找不到,那么Session就会发送select语句向数据库

2017-04-14 16:53:40 2693

原创 浅谈Hibernate中Session查询时get方法与load方法的区别

首先,get()与load()方法都能实现查询数据库的操作,但两者还是有区别,下来浅谈它们在执行过程中的区别。        一、当程序调用get()方法时,hibernate发送sql语句对数据库进行查询,之后数据库将查询结果返回给hibernate框架,hibernate将结果封装到具体的实体bean中,然后再将实体对象返回给程序。       二、当程序调用load()方法时,hib

2017-04-10 20:49:40 341

kubernetes-dashboard.yaml

Dashboard 是基于网页的 Kubernetes 用户界面,可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中

2020-06-28

kube-flannel.yaml

使用flannel网络来实现kubernetes的网络的相互通信,flannel的原理是将多个不同子网通过被Flannel维护的Overlay网络拼接成为一张大网来实现互联的

2020-06-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除