https://cdn.jsdelivr.net/gh/wefantasy/FileCloud/img/fantasy-r.png

字符串匹配——KMP算法详解

字符串的匹配在任何系统中都是最流行的功能,许多算法可以完成这个任务,KMP是最常用的算法之一。它的名字跟功能并没有任何关联,仅仅是以三个发明者姓名首字母的缩写(Knuth-Morris-Pratt),起头的那个K就是著名科学家Donald Knuth。KMP是我刷算法遇到的第一块难啃的骨头,这完全不是能不能想到的问题,而是完全看不懂,学到最后不得不佩服发明者的脑洞之大。网络上已有很多能够详细分析该算法的文章,但我一直看的还是云里雾里,最终决定花些时间写一个更加通俗易懂的版本(至少对我是如此),其中些许可能与众不同的地方大多已做说明,希望能对大家有所启发。

基于Debian搭建Hyperledger Fabric 2.4开发环境及运行简单案例

在基于truffle框架实现以太坊公开拍卖智能合约中我们已经实现了以太坊智能合约的编写及部署,但其工作方式注定其只能应用于有限的业务场景中。相比之下,基于超级账本的Fabric具有高可扩展性和高可定制性,能够应用在更为复杂的商业场景中,但Fabric技术涉及很多新的概念,源代码跟新速度快且各版本间兼容性差,对初学者很不友好。为了使能够快速掌握Fabric,本文基于其目前最新的2.4版本搭建了一套区块链运行环境,并在此之上部署了官方示例chaincode并对其进行交互调试,最终整个环境及示例代码能够正常运行且得出预期结果。

通过Geth搭建私有以太坊网络

为了进一步了解以太坊区块链网络的工作方式和运行原理,笔者通过官方软件Geth搭建了私有以太坊网络fantasynetwork:首先通过VMware Workstation创建基础Ubuntu实验平台,再安装Golang、Geth等依赖环境;其次使用puppeth工具生成私网的配置文件genesis.json并复制到三个节点目录下,三个节点均使用该配置文件初始化网络;最后使用static-nodes.json的方式将三个节点设为默认接入节点,实现节点间的连通,连通后各节点中的账户可以互相转账挖矿。

git基础手册

前言 git是一个开源的分布式版本控制系统,有追踪文件的变更、实现并行开发等功能,已经是项目开发的必备软件。本文主要整理了git的文件操作、日