一个场景:用户保存自己的昵称,如果已经有其他用户用了这个昵称则不允许保存,但是要排除当前用户自己,因为如果用户未作修改,新昵称和老昵称一样,是可以保存的. 因为昵称定义了唯一规则: 'name' => 'unique:user', 所以即便是当前用户也不能保存未经修改一样的昵称. 解决方法:在控制器中,就把uid(主键)通过验证器唯一通道 $data参数传递给验证器 //控制器代码 $data['uid'] = 10; $validate = $this->validate($data, 'a…
这里是一个名单, 5免费在线CSS验证器的网站.这些网站让你验证你的CSS代码的自由,没有任何麻烦.你可以选择上传文件,验证CSS添加URL,或简单的复制和粘贴完整的CSS代码.好的方面是,这些网站不仅指出了代码中的错误,但他们也建议的方法可以解决. 所有这些网站都是很有用的学习者以及季节性的CSS的CSS码编码器.验证按照万维网联盟(W3C) 规则.让我们开始与这些网站: 1.W3C CSS Validator 我将开始列表与W3C本身即 W3C CSS验证器CSS验证器验证程序检查CSS代码…
Fabric 1.4 源码分析peer节点启动 peer模块采用cobra库来实现cli命令. Cobra提供简单的接口来创建强大的现代化CLI接口,比如git与go工具.Cobra同时也是一个程序, 用于创建CLI程序 peer支持的命令如下所示: Usage: peer [command] Available Commands: chaincode Operate a chaincode: install|instantiate|invoke|package|query|signpackag…
以前从来没有写过博客,从这段时间开始才开始写一些自己的博客,之前总觉得写一篇博客要耗费大量的时间,而且写的还是自己已经学会的,觉得没什么必要.但是当开始用博客记录下来的时候,才发现有些学会的地方只是自己觉得已经学会了,还是有太多地方需要学习,眼高手低了,所以以后会养成写博客的好习惯,保持记录. 今天记录一下之前阅读过的源码:Peer节点背书提案过程. 1 起点 首先定位到core/endorser/endorser.go这个文件中的ProcessProposal()方法在第450行.其实对于Pe…
看一下Peer节点的启动过程,通常在Fabric网络中,Peer节点的启动方式有两种,通过Docker容器启动,或者是通过执行命令直接启动. 一般情况下,我们都是执行docker-compose -f docker-*.yaml up命令通过容器启动了Peer节点,而如果直接启动Peer节点则是执行了peer node start这条命令.看起来,这两种方式所使用的命令毫无关系,但事实上,在Docker容器中启动Peer节点也是通过执行了peer node start这条命令来启动Peer节点,…
hyperledger fabric各类节点及其故障分析   1.Client节点 client代表由最终用户操作的实体,它必须连接到某一个peer节点或者orderer节点上与区块链网络通信.客户端向endorser提交交易提案,当收集到足够背书后,向排序服务广播交易,进行排序,生成区块.但是该节点的故障不会影响区块链网络的正常运行. 2.CA节点 CA节点是hyperledger 1.0的证书颁发机构,由服务器(fabric-ca-service)和客户端组件(fabric-ca-clien…
Fabric区块链网络的组成  区块链网络结构图 区块链网络组成 组成区块链网络相关的节点 节点是区块链的通信主体,和区块链网络相关的节点有多种类型:客户端(应用).Peer节点.排序服务(Orderer)节点.CA节点 客户端(应用程序)节点 客户端必须连接到某一个Peer节点或者排序服务节点才可以与区块链网络通信. Peer节点 Peer节点主要负责通过执行链码(chaincode)实现对账本的读写操作 所有的Peer节点都是记账节点(Committer),负责维护状态数据和账本的副本 部…
1.Client节点 client代表由最终用户操作的实体,它必须连接到某一个peer节点或者orderer节点上与区块链网络通信.客户端向endorser提交交易提案,当收集到足够背书后,向排序服务广播交易,进行排序,生成区块.但是该节点的故障不会影响区块链网络的正常运行. 2.CA节点 CA节点是hyperledger 1.0的证书颁发机构,由服务器(fabric-ca-service)和客户端组件(fabric-ca-client)组成.CA节点接收客户端的注册申请,返回注册密码用于用户登…
Orderer 节点启动通过 orderer 包下的 main() 方法实现,会进一步调用到 orderer/common/server 包中的 Main() 方法. 核心代码如下所示. // Main is the entry point of orderer process func Main() { fullCmd := kingpin.MustParse(app.Parse(os.Args[1:])) // "version" command if fullCmd == ver…
1. 什么是Struts2 验证器 一个健壮的 web 应用程序必须确保用户输入是合法.有效的. Struts2 的输入验证 基于 XWork Validation Framework 的声明式验证:Struts2 提供了一些基于 XWork Validation Framework 的内建验证程序. 使用这些验证程序不需要编程, 只要在一个 XML 文件里对验证程序应该如何工作作出声明就可以了. 需要声明的内容包括: 哪些字段需要进行验证 使用什么验证规则 在验证失败时应该把什么样的出错消息发…