Hyperledger Fabric 超级账本的硬伤 Netkiller Blockchain 手札 本文作者最近在找工作,有意向致电 13113668890 Mr....这个问题限制了超级账本的很多场景应用,这是超级账本的硬伤。...学习过多线程的朋友一定很清楚出了什么问题。...很多场景需要更新区块中的数据,如果频繁操作,就会产生覆盖,目前Hyperledger Fabirc 并没有提供解决方案。 1....我的应用场景是实现代币功能,需要从总账号给注册用户转账,操作频繁。
java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; /** * 删除未使用的类...private static final Pattern EXCLUDE_PATTERN = Pattern.compile("target|.git"); /** * 添加自行定义的会被调用到的注解或关键字
而HyperLedger Fabric在1.0对系统架构进行了升级,使得事务的处理更加复杂。...二、账本 要了解Fabric对事务的处理,首先我们需要了解Fabric中的账本,也就是实际存储和查询数据的地方。...这是IBM微讲堂中对Fabric账本的示意图: Fabric 1.0中的账本分为3种: 区块链数据,这是用文件系统存储在Committer节点上的。区块链中存储了Transaction的读写集。...三、事务提交过程 了解了Fabric中的账本,接下来我们来了解一下对这些账本的操作涉及到的Transaction。.../gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com
Fabric 1.3中的新增的idemixer(Identity Mixer)以前不大懂zero-knowledge proof(零知识证明),原本觉得PKI基础的MSP是比较常用和稳健的方式,新加个验证方式是不是有点增加复杂性...如果使用Fabric的idemixer 2.1 测试开发环境使用idemixgen命令行 具体参看https://hyperledger-fabric.readthedocs.io/en/latest/...具体调用的go链码 package main import ( "fmt" "log" "os" "strconv" "strings" "github.com/hyperledger/fabric-chaincode-go.../pkg/cid" "github.com/hyperledger/fabric-chaincode-go/shim" pb "github.com/hyperledger/fabric-protos-go...But got: %v", args[0])) } 2.3 idemixer的限制 还不大完善,基本现阶段还是推荐用传统的MSP方式,具体参考https://hyperledger-fabric.readthedocs.io
Fabric 2.0 alpha里FabToken作为重大新特新引入,它提供了让用户在通道使用令牌环呈现资源的能力。...可惜在beta和release版本,FabToken被彻底删除, 笔者fabric-sample-2.0-alpha下的fabtoken跑不起来了,原生支持token暂时是不行了,估计只能自己写链码造了...而具体删除的原因,官方JIRA没给出具体原因,还是google给力些。...参考链接https://lists.hyperledger.org/g/fabric/topic/fabtoken/34150195?...而后面的一个哥们是建议使用Fabric EVM去实现, hyperledger基金会确实还有是有这个组件, 参考https://github.com/hyperledger/fabric-chaincode-evm
---- 本文简介 Fabric.js 提供了2个方法删除对象。 一个是 直接删除,另一个方法是 带过渡动画 删除元素(淡出动画)。...本文重点讲 带过渡动画 删除元素的方法,还会讲到设置 过渡时长 、删除后的 回调函数 等知识点。...canvas.remove remove 很好理解,就是删除的意思。...canvas.fxRemove fxRemove 是一个带过渡动画的删除方法,使用该方法删除的对象会淡出,直至消失。...删除元素(带过渡动画) 在Vue3中使用Fabric实现 删除元素(带过渡动画)
Hyperledger Ledger从1.2升到1.3之后,同事反馈同样的脚本,创建通道或加入通道,部分人没问题,部分人一直有问题。...docker images查询了下hyperledger/fabric-couchdb版本都是latest....具体使用docker inspect hyperledger/fabric-couchdb 才查询到实际版本为 ".base.version": "amd64-0.4.14", 这个是当前最新的版本,查看...实际上hyperledger fabric-couchdb 0.4.14镜像使用的couchdb版本为2.2.0比较新了。...而hyperledger fabric-coudb 0.4.13镜像使用的couchdb为2.1.1。应该是版本变化有些大。
当系统空间使用量过大需要清理空间或者清理某个文件时,有时会出现执行了删除命令之后磁盘空间并没有释放的情况。...很多人首次遇到该情况时会比较困惑,在考虑是不是像windows系统的回收站一样,删除只是逻辑删除到回收站一样?...其实不然,linux的回收站功能想了解的可以与我沟通或查资料了解一下,也是个比较实用的方法,此处我们主要实践文件删除后空间未释放问题。...lsof命令在最小化安装的系统中是没有,可以先通过yum安装 yum install -y lsof 2.1 lsof查看文件 查看所有已打开文件并筛选出其中已删除状态(deleted)的文件 [root...03 结语 本主要适用于以下场景: 删除文件空间未释放 磁盘满了 但是找不到文件 再提示一遍,如果可以使用 echo " ">filename 命令在线清空文件,则无需暴力的结束进程,如果此方法无效时再考虑结束进程
推荐三款工具,可根据项目情况进行选型: PurgeCSS PurgeCSS 通过分析你的内容和 CSS 文件,首先它将 CSS 文件中使用的选择器与内容文件中的选择器进行匹配,然后它会从 CSS 中删除未使用的选择器...由于其能够模拟 HTML 和 JavaScript 的执行,UnCSS 可以有效地从 web 应用程序中删除未使用的选择器。 但是,其模拟行为可能会在性能和实用性方面带来成本消耗。...例如,要从 Pug 模板文件中删除未使用的 CSS,你需要将 Pug 转换为 HTML 并在 jsdom 中模拟页面。...目前,在删除未使用的 CSS 方面,UnCSS 在某些情况下可能是最准确的工具。...提取器是一个函数,它的作用是根据文件内容提取文件中使用所有的 CSS 选择器。它可以完美地删除未使用的 CSS。
在联盟链Hyperledger Fabric中,在Fabric v2.3版本出来之前,一个新节点加入通道(通道,Fabric的一个特性,可以理解为一个通道就是一个区块链网络,不同通道间的账本是独立的,节点可以加入多个通道...在最新的Fabric版本中,账本快照很好的解决了这个问题。 账本快照功能可以对一个节点的通道信息(包括其状态数据库)进行快照,新节点可以通过快照加入该通道。 ...数据同步是区块链中非常常见的场景,所以实现数据的快速同步也将是区块链的必备能力之一。Hyperledger Fabric作为最具代表的联盟链引擎,一直在不断更新迭代,功能也越来越完善。...附录: Fabric官方学习文档:https://hyperledger-fabric.readthedocs.io/en/latest/whatis.html Fabric私有数据:https://hyperledger-fabric.readthedocs.io.../en/latest/private-data/private-data.html Fabric账本快照:https://hyperledger-fabric.readthedocs.io/en/latest
Hyperledger fabric v1.4.0 于2019年1月9日更新【更新说明】,主推稳定性和线上生产,因此推荐大家使用这个版本学习或者应用开发。...(推荐一个手动部署的文章,可兼容1.4 链接) 三、fabric-sdk 这个“坑”本人踩了一个星期。...chaincode部署完成之后,用fabric-sdk-go来调用链码中的函数,报了个错误在网上一直没找到相应的解决办法,期间使用了fabic1.1.1、1.3.1、1.4.0,sdk也换了几个版本没有解决...[github] 上的fabric-sdk-go版本最新的只有v1.0.0,还是alpha4,简直“深坑”!...相比较之下,fabric-sdk-node 一直在更新稳定版本,所以本人最后决定用node版本的sdk进行应用的开发。
数据库报错(未删除任何行,未更新任何行) 报错 报错如图: 数据库更新表格时,提示如下错误弹框 解决方法 首先查看定义的表格数据类型有无问题,点击表格编辑前100行 如何更改编辑行数:更改编辑行数...这里的允许NULL值为通过输入端输入后,写进数据库是否包含空值 例如,输入端通过注册输入注册名后,若允许NULL值未勾选,则写进表格的为用户名+数据类型除了用户名所占字节剩余用空格进行填充(写入表格中的数据为用户名...+若干空格) 若允许NULL值勾选了,则写进表格的即为刚刚进行注册的用户名,其后没有多余空格 更新表格之后,若直接在更新的数据之后右键执行,是不可以的,会报错。...正确的做法为,选择表格最下方NULL,右键执行,即可更新数据库表。
一、我的环境: 图片.png 我使用的是Hyperledger fabric1.4.4版本 参照官方文档:https://hyperledger-fabric.readthedocs.io/en/release...-1.4/write_first_app.html 二、实验前准备 如果此前运行了其他的fabric测试程序,在试验前首先关闭其他的容器和网络 docker rm -f $(docker ps -aq)...docker rmi -f $(docker images | grep fabcar | awk '{print $3}') 图片.png 检查正在运行的docker容器,可以看到已经没有正在运行的容器...图片.png ---- 三、实验过程 进入~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/fabcar/目录 图片.png...凡事参考相应版本的官方文档最有效,各种各样的博客五花八门,文章质量参差不齐,容易误导。
[OPTIMIZE TABLE 当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小。这是因为删除操作后在数据文件中留下碎片所致。OPTIMIZE TABLE 是指对表进行优化。...如果已经删除了表的一大部分数据,或者如果已经对含有可变长度行的表(含有 VARCHAR 、 BLOB 或 TEXT 列的表)进行了很多更改,就应该使用 [OPTIMIZE TABLE 命令来进行表优化...这个命令可以将表中的空间碎片进行合并,并且可以消除由于删除或者更新造成的空间浪费] 。...[四,小结] [结合mysql官方网站的信息,个人是这样理解的。当你删除数据 时,mysql并不会回收,被已删除数据的占据的存储空间,以及索引位。...被删除的记录被保持在链接清单中,后续的INSERT操作会重新使用旧的记录位置。您可以使用OPTIMIZE TABLE来重新 利用未使用的空间,并整理数据文件的碎片。]
在 HTML 也好,Word 也好,基本都有下划线和删除线(中划线)。 Fabric.js 作为一个老牌 canvas 库,当然也提供中划线和下划线的配置啦,除此之外还提供了上划线的配置。...\n\n\n 本文要讲解的就是这3种装饰线在 fabric.js 中的使用方法。除了初始化配置外,还支持项目运行时,让用户动态配置。本文案例使用了 IText ,该组件支持编辑功能。.../script/fabric.5.2.1.js"> const canvas = new fabric.Canvas('c') const iText =...换行的方法是文本内容里使用\n做换行。 动态设置 除了在初始化时可以设置装饰线外,Fabric.js 也提供了在运行时用户手动设置。不过代码会稍微复杂一点。...-- 引入fabric --> <script src="../..
当使用这个文件的进程结束后,文件才会真正的从磁盘删除,释放占有的空间。...我们发现剩余磁盘空间比较少时,回去删除一些大的临时文件或者log文件,如果删除之后会发现磁盘空间并未减少,那么可以通过“lsof”命令去查看正在使用该文件的进程,然后再重启该进程或者服务。...,可是删除后,发现磁盘空间并没有真正的减少。...场景二:内核模块Bug 在文件系统处理文件需要的信息都存放在索引节点(inode)中,如果在删除文件的时候索引节点的引用计数不为0(表示文件正在被使用),则不会在磁盘中真正的删除文件,从而保证正在使用此文件的进程能够正常的处理文件...这次客户在删除文件后,磁盘空间没有释放,通过"lsof"命令也没有找到正在占用此文件的进程。于是再次怀疑这是由于产品的内核模块早成的。
一、引言 HyperLedger Fabric作为一个架构灵活的企业级区块链平台,正在被越来越多的企业用于生产环境。...之前我分享过一篇文章《HyperLedger Fabric在携程区块链服务平台的应用实战》介绍了一些携程对于HyperLedger Fabric的落地经验,并重点分享了Fabric框架在代码结构灵活性上的一些认识和在...Fabric开源框架的基础上做的一些延伸开发。...二、fabric orderer服务过程分析 我们先以最简单的solo为例,看一下Fabric的orderer节点接收排序请求后的主要处理逻辑。...使用Tendermint在区块链领域中的成功案例包括Hyperledger Burrow、cosmos等著名项目 。
背书节点是动态的角色,是与具体链码绑定的。每个链码在实例化的时候都会设置背书策略,指定哪些节点对交易背书后才是有效的。...排序服务节点 排序服务节点(Ordering Service Node或者Orderer)接收包含背书签名的交易,对未打包的交易进行排序生成区块,广播给Peer节点。...排序服务提供的是原子广播(Atomic Broadcast),保证同一个链上的节点接收到相同的消息,并且有相同的逻辑顺序。...现在是通过Kafka/ Zookeeper实现的CFT,未来将提供基于 etcd/Raft 的Raft共识订购服务以及完全分散的BFT订购服务 ##CA节点 CA节点是Hyperledger Fabric1.0...参考资料 《深度探索区块链:Hyperledger Fabric技术与应用》 Pluggable Consensus
在使用docker时,会随着时间的累积,产生越来越多的未使用的镜像和启动失败、停止使用的容器,且不会再使用到。...这部分数据无用且还占用空间,这时我们需要将无用的数据一键删除掉 一键删除无用容器或已停止容器 需Docker 1.13版本以后 docker container prune -f 一键删除未使用的
现在有多行div,共用一个删除事件,点击删除的时候,会把页面所有的div全都删掉了,但是我只需要点击哪一行div里面的删除按钮,就删除哪一行,其实很简单,只需要写一个this事件即可。 ?...> 滞留区域1 修改 删除...> 滞留区域2 修改 删除...> 滞留区域3 修改 删除...body> 原文作者:祈澈姑娘 技术博客:https://www.jianshu.com/u/05f416aefbe1 90后前端妹子,爱编程,爱运营,文艺与代码齐飞,魅力与智慧共存的程序媛一枚