摘要: 前言 测试分为:压力测试、负载测试、性能测试,功能测试等等,其中在开发过程中开发人员经常要写一些test case unit 自己的模块进行功能测试测和性能。在分析出模块的性能瓶颈后开发人员就需要针对性的调优,但需要提醒的是调优工程一般要放在最后在进行,过早地优化会浪费开发时间,而且有时在需求或者功 阅读全文
posted @ 2018-12-21 01:02 王的博客 阅读(1439) 评论(0) 推荐(0) 编辑
摘要: Hyperledger gossip   本文记述了Hyperledger Fabric 中 一种网络数据同步协议 gossip,它的主要作用是致力于账本数据的安全传输,保证不同节点之间状态的同步和完整。   在fabric的网络中gossip的message 阅读全文
posted @ 2018-10-12 14:34 王的博客 阅读(2357) 评论(0) 推荐(0) 编辑
摘要: 本文接上一节是测试部分 搭建一个模拟测试环境 作者将fabric release1.2工程中的 example-e2e进行了改造来进行本次实验: (1)首先我们将examples/e2e_cli/scripts/script.sh中的安装智能合约部分注释掉,或者从此处下载替换原有的脚本 (2)然后再 阅读全文
posted @ 2018-08-24 19:31 王的博客 阅读(3570) 评论(0) 推荐(0) 编辑
摘要: 前言 本文主要目的是用于整理Hyperledger Fabric中关于chaincode 管理和操作的内容,作者以release-1.2为范本进行讲解。 主要参考链接: https://hyperledger-fabric.readthedocs.io/en/release-1.2/chaincod 阅读全文
posted @ 2018-08-14 21:33 王的博客 阅读(999) 评论(0) 推荐(0) 编辑
摘要: Golang context 本文包含对context实现上的分析和使用方式,分析部分源码讲解比价多,可能会比较枯燥,读者可以直接跳过去阅读使用部分。 ps: 作者本着开源分享的精神撰写本篇文章,如果出现任何误差务必留言指正,作者会在第一时间内修正,共同维护一个好的开源生态,谢谢!!! 一、简介 作 阅读全文
posted @ 2018-05-31 19:26 王的博客 阅读(1620) 评论(0) 推荐(0) 编辑
摘要: 前言 现在很多人都在从事区块链方面的研究,作者也一直在基于Hyperledger Fabric做一些开发工作。为了方便后来人更快的入门,本着“开源”的精神,在本文中向大家讲解一下Hyperledger Fabric账本的结构和原理。作者解析的Fabric的工程版本为v1.0.1,在新版本中可能会有些 阅读全文
posted @ 2018-05-16 18:21 王的博客 阅读(2421) 评论(2) 推荐(1) 编辑
摘要: Factom这个Solution在2014年的时候就已经推出了,现在已经2018年了,我才来写这一篇分析文章可能有些迟了,但是它是十分具有参考价值的。因为现阶段来开区块链虽然炒得火热--养猫、养狗、草泥马之类的,但是真正成熟的应用比较少,有很多连基本的链平台都没有开发完全。而bitcoin作为区块链 阅读全文
posted @ 2018-01-11 19:04 王的博客 阅读(7393) 评论(1) 推荐(2) 编辑
摘要: 今年对与bitcoin来讲是不平凡的一年,它经历了价格的暴涨、腰斩和再次暴涨,对于这些现象背后的利益博弈网上分析的文章很多,我就不再赘述了。我们从技术的角度上分析一下bitcoin的发展历程,同时预测一下未来的前景。 Bitcoin要硬分叉的消息就像狼来了一样,不过最后还是来了,最终会分化成以下几个 阅读全文
posted @ 2017-10-19 14:30 王的博客 阅读(1358) 评论(0) 推荐(0) 编辑
摘要: order by 默认情况下,MySQL对GROUP BY col1,col2,...查询进行排序,就好像您在查询中还包含了ORDER BY col1,col2,...一样。如果您包含一个包含相同列列表的显式ORDER BY子句,则MySQL会对其进行优化,而不会造成任何速度损失,尽管排序仍然会发生 阅读全文
posted @ 2020-07-16 17:10 王的博客 阅读(646) 评论(0) 推荐(0) 编辑
摘要: 关键性数据结构 hmap: map 的 header结构 bmap: map 的 bucket结构 mapextra: map 的 拓展结构 不是每一个map都包含 golang map 是用 hash map实现的,首先,我们先看 hash map是怎么实现的;然后我们再看 golang map 阅读全文
posted @ 2020-07-13 12:07 王的博客 阅读(920) 评论(0) 推荐(0) 编辑
摘要: atomic操作 在编程过程中我们经常会使用到原子操作,这种操作即不想互斥锁那样耗时,又可以保证对变量操作的原子性,常见的原子操作有fetch_add、load、increment等。 而对于atomic的实现最基础的解释:原子操作是由底层硬件支持的一种特性。 底层硬件支持,到底是怎么样的一种支持? 阅读全文
posted @ 2020-03-22 23:03 王的博客 阅读(6635) 评论(0) 推荐(1) 编辑
摘要: virtual 函数 示例代码如下: 程序输出: 这里涉及到一个c++知识点 向上强制转换 :将派生类引用或指针转换为基类引用或指针。该规则使得公有继承不需要进行显示类型转化,它是is a 规则的一部分。 相反的过程被称为 向下强制转换 ,向下强制类型转换必须是显示的。因为派生类可能对基类进行拓展, 阅读全文
posted @ 2020-02-22 18:29 王的博客 阅读(462) 评论(0) 推荐(0) 编辑
摘要: 简介 在业务系统开发过程中系统权限控制的设计是很重要的,尤其是大型的业务系统,一个好的权限控制设计可以为后面业务开发和需求迭代节省大量的成本。 目前流行的权限控制模型常见有一下几种: + ACLs: access control list + RBAC: Role Based access cont 阅读全文
posted @ 2020-02-20 00:00 王的博客 阅读(1779) 评论(0) 推荐(0) 编辑
摘要: 前言 Golang 目前的主要應用領域還是後臺微服務,雖然在業務領域也有所應用但仍然是比較小衆的選擇。大多數的服務運行環境都是linux,而在windows中golang應用更少,而作者因爲特殊情況,不得已要在widows環境中用golang去寫本地代理服務。在我的使用場景中實時性要求非常高(視頻通 阅读全文
posted @ 2020-01-17 16:13 王的博客 阅读(606) 评论(0) 推荐(0) 编辑
摘要: 匹配特殊字符 //re :=regexp.MustCompile("[~!@ $%^& (){}|\\\\/+\\ 【】:\"?':;‘’“”,。、《》\\]\\[`]") //re :=regexp.MustCompile("[! /]|[: @]|[\\[ `]") re :=regexp.Mu 阅读全文
posted @ 2019-05-28 20:07 王的博客 阅读(9159) 评论(0) 推荐(0) 编辑
摘要: 字符串 定义 在golang中字符串是一种不可变的字节序列,它可以包含任意的数据,包括0值字节,但主要是人类可以阅读的文本。golang中默认字符串被解读为utf 8编码的Unicode码点(文字符号)序列。 特性 golang中字符串具有不可变性。例如 这种写法会引起编译错误:str[0] 不可赋 阅读全文
posted @ 2019-03-22 11:33 王的博客 阅读(1131) 评论(0) 推荐(0) 编辑
摘要: Q&A Q1: 使用fabric release 1.2 进行golang chaincode开发时报错: ..\..\hyperledger\fabric\vendor\github.com\docker\docker\pkg\archive\archive.go:364:5: hdr.Forma 阅读全文
posted @ 2019-01-02 17:53 王的博客 阅读(451) 评论(0) 推荐(0) 编辑
摘要: Fabric调试异常 作者在使用chaincode进行智能合约开发的过程中,使用Goland + Golang + win10_X64作为开发环境: 但在调试的时候会发生如下错误: 总结网络上提出以下两种解决方案: 1. 升级Goland 版本到2018.2以上的版本 2. 使用 命令去编译新版本的 阅读全文
posted @ 2019-01-02 17:20 王的博客 阅读(1472) 评论(0) 推荐(0) 编辑