随笔分类 - Golang
Go语言相关
摘要:概述 shardingdb 是一个开源包,旨在为 GoLevelDB 增加分片和并发读写功能。它可以作为 LevelDB 的替代品,方便地集成到现有项目中。本博客将介绍 shardingdb 及其功能,并介绍如何在您的项目中使用它。 特点 - 分片支持:shardingdb 使您能够将数据分布在多个
阅读全文
摘要:1.背景 在大型项目开发过程中,经常会遇到打印大量日志,输出信息和在源码中写注释的情况。对于软件开发来说,我们一般都是打印输出英文的日志(主要考虑软件在各种环境下的兼容性,如果打印中文日志可能会出现乱码,另外英文日志更容易搜索,更容易后续做国际化),但是对于我们中国人来说,很容易就把中文全角的中文标
阅读全文
摘要:1. iocgo简介 习惯于Java或者C#开发的人应该对控制反转与依赖注入应该再熟悉不过了。在Java平台有鼎鼎大名的Spring框架,在C#平台有Autofac,Unity,Windsor等,我当年C#开发时用的最多的就是Windsor。使用IoC容器是面向对象开发中非常方便的解耦模块之间的依赖
阅读全文
摘要:用过Fabric的都知道,在Fabric中的状态数据库提供了Couchdb和Leveldb两种实现,一般我们都会使用Couchdb作为状态数据库的默认实现,主要是因为Couchdb可以进行富查询。但是在某些情况下我们只能采用Leveldb的情况下,我们无法使用富查询,那么怎么办?我们可以利用Leve
阅读全文
摘要:最近同事在研究Casbin的权限设计,我们主要是考虑使用ABAC基于属性的访问控制,Casbin给的示例不多,于是自己写了几个示例。 首先我们看看提到ABAC时,一般描述如下: ABAC被一些人称为是权限系统设计的未来。 不同于常见的将用户通过某种方式关联到权限的方式,ABAC则是通过动态计算一个或
阅读全文
摘要:最近在和同事交流我们PalletOne中对UTXO和签名的处理,有些心得,写下此博文。大家都知道比特币中解锁一个UTXO是通过签名来实现,但是到底是对什么进行签名?本文详细介绍了比特币是如何对一笔交易进行签名的细节,这是我在几乎所有介绍比特币的技术文章中所没有看到的。
阅读全文
摘要:前一篇博客讲到了如何编译本地的Fabric Code成镜像文件,那么如果我们想改Fabric源代码,实现一些Fabric官方并没有提供的功能,该怎么办呢?这时我们除了改源码,增加需要的功能外,还需要能够跑通Fabric的测试。Fabric的测试主要包括单元测试和行为测试,下面分别介绍。 一、单元测试
阅读全文
摘要:在企业级应用开发中,经常会涉及到流程和状态,而有限状态机(FSM)则是对应的一种简单实现,如果复杂化,就上升到Workflow和BPM了。我们在Fabric ChainCode的开发过程中,也很可能涉及到状态机,这里我们就举一个例子,用FSM实现一个二级审批的状态转移。 我们有一个表单,员工填写表单
阅读全文
摘要:深蓝前几篇博客讲了Fabric的环境搭建,在环境搭建好后,我们就可以进行Fabric的开发工作了。Fabric的开发主要分成2部分,ChainCode链上代码开发和基于SDK的Application开发。我们这里先讲ChainCode的开发。Fabric的链上代码支持Java或者Go语言进行开发,因
阅读全文
摘要:最近在研究Go,打算基于Go做点Web API,于是经过初步调研,打算用Beego这个框架,然后再结合其中提供的ORM以及Swagger的集成,可以快速搭建一个RESTful API的网站。 下面是具体做法: 1. 在Ubuntu中安装Go 1.8 默认Ubuntu apt-get提供的是Go 1.
阅读全文