![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链块技术
文章平均质量分 81
魏红心
10年软件开发与管理经验,专注于区块链技术研究。
展开
-
【链块技术 01期】区块链中的密码算法
原文链接:【链块技术 01期】区块链中的密码算法近两年,随着区块链日益火爆,密码算法也再次高频地出现在各大报端。密码的目标密码学DavidKahn在他的被称为“密码学圣经”的著作中是这样定义密码学的:“密码术(cryptology)就是保护。”保护什么呢?首要的当然是保护信息本身不被别人获取(机密性);同时,保护信息不被伪造、篡改(完整性);能够验证信息的发送者(...原创 2018-04-04 20:11:59 · 4474 阅读 · 0 评论 -
【链块技术45期】智能合约基础语言(十)——Solidity内联汇编
智能合约基础语言(十)——Solidity内联汇编一、目录☞概念☞语法☞操作码☞字面量☞函数风格☞访问外部函数与变量☞标签☞定义局部变量☞赋值☞Switch☞循环☞函数☞内联汇编中注意事项☞Solidity中的惯例二、概念通常我们通过库代码,来增强语言,实现一些精细化的控制,Solidity为我们提供了一种接近于EVM底层...原创 2018-10-15 18:46:13 · 282 阅读 · 0 评论 -
【链块技术47期】区块链技术基础语言(二十九)—Go语言常用工具包(上)
原文链接:区块链技术语言(二十九)—Go语言常用工具包(上)常用工具包分为两节内容。本节介绍格式化输入输出和对字符串处理的常用工具包和函数;下节介绍JSON处理和对文本的几种操作。 一、格式化输入输出fmt包提供了格式化的输入和输出的操作。1.1 常见的函数主要介绍fmt包中常用的Println、Printf和Scanf函数,如表1所示。1.2 格式化符号格...原创 2018-10-18 17:35:14 · 286 阅读 · 0 评论 -
【链块技术43期】智能合约基础语言(七)——Solidity单位和特殊变量
智能合约基础语言(七):Solidity单位和特殊变量一、目录☛ 货币单位☛ 时间单位☛ 特殊的变量及函数二、货币单位一个常量的数字,可以使用后缀wei,finney,szabo或ether来在不同面额中转换。如2 ether == 2000 finney的结果是true。▪ 1 ether==10^3 finney▪ 1 ether==10^6 szabo...原创 2018-09-30 18:01:31 · 349 阅读 · 0 评论 -
【链块技术46期】智能合约基础语言(十一)——创建和调用合约
智能合约基础语言(十一)——创建和调用合约一、目录☞创建合约☞调用合约二、创建合约我们写好一个合约后,一个合约如何部署到以太坊网络,并实现合约函数的调用呢?合约部署到以太坊网络上,也是一个交易的过程。首先向全网发送一个合约创建的交易,待矿工打包交易,并获得全网的认可从而生效后,则得到合约的地址;既而向这个地址发送消息调用,实现调用合约的某个函数。2.1 初始创...原创 2018-10-16 18:31:32 · 402 阅读 · 0 评论 -
【链块技术48期】区块链技术基础语言(三十):Go语言常用工具包(下)
原文链接:区块链技术基础语言(三十):Go语言常用工具包(下)一、JSON处理JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,方便人们阅读和编写,也方便程序地解析和生成。虽然JSON是JavaScript的子集,但其格式完全独立于编程语言,表现为键/值对集合的文本描述形式(类似Go语言的字典结构),如图所示。由于它轻盈、生成这种格式的语言有较为完...原创 2018-11-21 17:56:55 · 318 阅读 · 0 评论 -
【链块技术50期】区块链技术基础语言(三十二):Go语言网络编程(下)
原文链接:区块链技术基础语言(三十二):Go语言网络编程(下) 本文紧接上文所述,讲解socket编程和HTTP编程。一、socket编程在上一节我们介绍了网络体系的五层模型,介绍了每层模型所遵守的协议。TCP/IP是一个协议族,它由网络层的IP协议和传输层的TCP协议组成,其中网络层建立了主机到主机的通信,传输层建立了端口到端口的通信。只要确定主机和端口,就能实现程序之间的交流。...原创 2018-11-29 10:51:54 · 348 阅读 · 0 评论 -
【链块技术49期】区块链技术基础语言(三十一):Go语言网络编程(上)
原文链接:区块链技术基础语言(三十一):Go语言网络编程(上) 一、网络概述 1.1 网络协议网络协议就是为网络数据交换而制定的规则、约定与标准。 1.2 分层模型为了降低网络设计的复杂性,绝大多数网络都组织成一堆相互叠加的层。每一层都建立在下一层的基础之上,且每一层的目的都是向上一层提供特定的服务,但是把如何实现这些服务的细节对上一层加以屏蔽。用户接触到的是网络体...原创 2018-11-28 13:49:55 · 378 阅读 · 0 评论 -
【链块技术53期】超级账本Fabric教程(二): Docker的部署和安装(下)
原文链接:超级账本Fabric教程 Docker的部署和安装(下)本节分享超级账本运行环境docker容器的搭建。 四、Docker compose4.1 能够在主机上创建出相互隔离的网络,通过命令行管理多个容器。在mac和windows中都集成了compose工具,不用重新安装。在linux中的安装方法:(1) 通过 pip 进行 安装sudo apt insta...原创 2018-12-19 14:10:46 · 451 阅读 · 0 评论 -
【链块技术51期】超级账本Fabric教程(一):超级账本入门
原文链接:超级账本Fabric教程(一):超级账本入门 本节分享有关拆超级账本的概念以及体验部署过程。一、简介是一个带有可插入各种功能模块架构的区块链实施方案,目标是打造成一个由全社会共同维护的开源超级账本。由Linux 基金会的开源项目,全称是Hyperledger Fabric)是区块链的商用平台。开源地址:https://github.com/hyperledger。 ...原创 2018-12-07 10:35:30 · 3149 阅读 · 0 评论 -
【链块技术52期】超级账本Fabric教程(二):Docker的部署和安装(上)
原文链接:超级账本Fabric教程(二):Docker的部署和安装(上)本节分享超级账本运行环境docker容器的搭建。 一、目录HyperLedger超级账本运行环境-Docker容器介绍 二、推荐linux系统 目录 推荐linux系统 通过虚拟机安装ubuntu Docker 简介...原创 2018-12-14 14:27:28 · 485 阅读 · 0 评论 -
【链块技术54期】智能合约基础语言(九)——Solidity继承
原文链接:以太坊智能合约(九):Solidity继承 本文主要讲解了有关智能合约继承的概念、继承的参数传递、重写函数以及Solidity的继承中的调用关系与多继承。掌握区块链技术,学习智能合约。 一、目录☞继承的概念☞继承的参数传递☞重写函数☞Solidity的继承中的调用关系与多继承二、继承的概念Solidity语言为我们提供了继承的支持,实现的方...原创 2018-12-20 11:13:27 · 291 阅读 · 0 评论 -
【链块技术55期】超级账本Fabric教程(三):Hyperledger Fabric 1.0架构及原理
区块链应用技术开发,本节分享超级账本Fabric1.0版的架构设计。原创 2018-12-21 11:39:38 · 1417 阅读 · 0 评论 -
【链块技术57期】超级账本Fabric教程(四):使用docker编译fabric源码(下)
原文链接:超级账本Fabric教程(四):使用docker编译fabric源码(中);超级账本Fabric教程(四):使用docker编译fabric源码(下) 本文继续介绍如何在docker镜像中编译fabric源码,方便修改代码后快速测试。 7.2 生成交易配置在主机的工程目录my-basic-network下新建configtx.yaml,具体内容如下: # C...原创 2018-12-27 10:42:16 · 452 阅读 · 0 评论 -
【链块技术57期】超级账本源码分析: peer命令结构
区块链应用技术开发,区块链开发,超级账本,本文介绍fabric peer命令的结构。原创 2018-12-28 10:55:03 · 635 阅读 · 0 评论 -
【链块技术44期】智能合约基础语言(八)——Solidity事件
智能合约基础语言(八):Solidity事件一、目录☞事件的定义☞web3事件监听☞检索日志☞底层日志接口二、事件的定义事件是使用EVM日志内置功能的方便工具,在DAPP的接口中,它可以反过来调用Javascript的监听事件的回调。事件在合约中可被继承。当被调用时,会触发参数存储到交易的日志中(一种区块链上的特殊数据结构)。这些日志与合约的地址关联,...原创 2018-10-08 18:56:18 · 476 阅读 · 0 评论 -
【链块技术42期】智能合约基础语言(六)——Solidity变量类型:其他
智能合约基础语言(六):Solidity变量类型:其他一、目录☞映射☞特殊的运算符delete☞基本类间的转换二、变量类型——映射映射或字典类型,一种键值对的映射关系存储结构。定义方式为mapping(_KeyType => _KeyValue)。键的类型允许除映射外的所有类型,如数组,合约,枚举,结构体。值的类型无限制。映射可以被视作为一个哈希表,其中所...原创 2018-09-29 09:57:06 · 492 阅读 · 0 评论 -
【链块技术39期】智能合约基础语言(三)——Solidity变量类型:值类型
原文链接:智能合约基础语言(三):Solidity变量类型:值类型(下) 一、目录☛值类型和引用类型的区别☛布尔类型(bool)☛整型(int、uint)☛定点型小数(fixed、ufixed)☛地址类型(address)☛定长字节数组(bytes1,bytes2,bytes3,...,bytes32)☛有理数和整数字面量☛地址字面量☛字符串字面量☛...原创 2018-09-20 11:35:25 · 639 阅读 · 0 评论 -
【链块技术 02期】共识机制:拜占庭容错系统
原文链接:【链块技术 02期】共识机制:拜占庭容错系统 什么是区块链?区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。显而易见,利用区块链构造基于互联网的去中心化账本,需要解决的首要问题是如何实现不同节点上的账本数据的一致性和正确性,即如何达成共识,这就需要借鉴已有的分布式系统中实现状态共识的算法。在20世纪80年代出现的分布式系统共...原创 2018-04-04 20:13:25 · 2770 阅读 · 0 评论 -
【链块技术 03期】共识机制:RAFT
原文链接:【链块技术 03期】共识机制:RAFT Raft最初是一个用于管理复制日志的共识算法,它是一个为真实世界应用建立的协议,主要注重协议的落地性和可理解性。Raft是在非拜占庭故障下达成共识的强一致性协议。算法理解RAFT核心思想很容易理解,大致就如下:如果多个数据库初始状态一致,只要之后进行的操作一致,就能保证之后的数据一致。过程概述在区块链系统中,使用...原创 2018-04-07 13:28:48 · 1515 阅读 · 0 评论 -
【链块技术 04期】共识机制:POW
原文链接:【链块技术 04期】共识机制:POW 比特币系统是一个基于互联网的去中心化账本。从去中心化账本系统的角度看,每个加入这个系统的节点都要保存一份完整的账本,但每个节点却不能同时记账,因为节点处于不同的环境,接收到不同的信息,如果同时记账的话,必然会导致账本的不一致。因此,需要有共识机制来达成哪个节点有权记账。比特币系统设计了以每个节点的计算能力(即“算力”)来...原创 2018-04-07 13:29:13 · 1024 阅读 · 0 评论 -
【链块技术 05期】共识机制 POS
原文链接:【链块技术 05期】共识机制 POS 鉴于POW机制存在明显弊端,比如依赖获取记账权,资源消耗高、可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低等,人们提出了一些工作量证明的替代方案,权益证明就是其中的一种方法。一、概述权益证明(Proof of Stake,POS)要求用户证明拥有某些数量的货币(即拥有对货币的权益)。POS最早在2012...原创 2018-04-07 13:30:01 · 800 阅读 · 0 评论 -
【链块技术 06期】共识机制:DPOS
原文链接:【链块技术 06期】共识机制:DPOS POW机制和POS机制虽然都能有效地解决记账的一致性共识问题,但是现有的比特币POW机制纯粹依赖算力,导致专业从事挖矿的矿工群体似乎已和比特币社区完全分隔,某些矿池的巨大算力俨然成为另一个中心,这与比特币的去中心化思想冲突。POS机制虽然考虑到了POW的不足,但依据权益结余来选择,会导致首富账户的权力过大,可能支配记账权。...原创 2018-04-07 13:30:28 · 850 阅读 · 0 评论 -
【链块技术08期】以太坊私链搭建实验2——私链节点间的转账
原文链接:【链块技术08期】以太坊私链搭建实验2——私链节点间的转账 一、说明本篇教程主要分享基于同一条私链的两个节点如何连接和转账,注意两个节点需要基于一模一样的创世区块创建,连接后才能互相转账。本教程使用上一篇教程中ubuntu和windows上搭建的两个私链节点进行演示。Ubuntu节点的账号信息: 二、确保两个节点网络能够通信● 查看wind...原创 2018-06-21 17:42:45 · 487 阅读 · 0 评论 -
【链块技术33期】区块链技术语言(二十五)——面向对象:接口
原文链接:区块链技术语言(二十五)——面向对象:接口 多态是面向对象的三大基本特性之一。多态是指对于不同的实例,同样的操作可能会有不同的表现形式。例如加法操作,如果操作的数据是数,那么它对两个数进行求和;如果操作的数据是字符串,那么它将连接两个字符串。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,那些操作可以通过相...原创 2018-09-05 18:46:37 · 370 阅读 · 0 评论 -
【链块技术32期】区块链基础语言(二十四)——Go语言面向对象:匿名组合
原文链接:区块链基础语言(二十四)——Go语言面向对象:匿名组合 继承也是面向对象的三大基本特性之一。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。通过继承,不仅可以让某个类型的对象拥有属于自己的数据结构和操作,还会自动拥有父类的数据结构和操作。这使得现有的类在无需重新编写原来类的情况下对这些功能进行了扩展,很好地解决了代码的重用问题。...原创 2018-09-03 19:40:43 · 232 阅读 · 0 评论 -
【链块技术37期】区块链技术语言(二十八)——Go语言并发编程(下)
原文链接:区块链技术语言(二十八):Go语言并发编程(下) 本节紧接上一节的内容,主要介绍channel中的有缓冲channel、单方向的channel、定时器,以及select语句在channel中的应用。3.4 有缓冲的channel3.4.1 概述有缓冲的通道(buffered channel)是一种在被接收前能存储一个或者多个值的通道。这种类型的通道并不强制要求goro...原创 2018-09-17 18:45:24 · 381 阅读 · 0 评论 -
【链块技术34期】区块链技术语言(二十六)——Go语言异常处理
原文链接 :区块链技术语言(二十六):Go语言异常处理 任何编程语言的学习都要考虑错误处理。早期的语言,比如C语言中的errno,不是语言规范的一部分,通常只作为一种编程范式存在。但C++语言从语言层面上增加错误处理的支持,比如异常的概念和try-catch关键字的引入。而Go语言最大的亮点之一就是拥有漂亮的错误处理规范。一、error error是Go语言内建的接口类型,它是...原创 2018-09-07 17:24:13 · 412 阅读 · 0 评论 -
【链块技术38期】智能合约基础语言(二)——Solidity源文件布局和合约结构
原文链接:【智能合约基础语言02期】Solidity源文件布局和合约结构 一、目录1.1 常见的内置函数1、pragma版本杂注2、注释3、导入源文件1.2 合约结构1、状态变量2、函数3、函数修改器4、事件5、结构体6、枚举7、常量8、控制结构9、映射1.3 错误处理1、assert2、require二、...原创 2018-09-18 16:36:18 · 344 阅读 · 0 评论 -
【链块技术36期】智能合约基础语言(一)——Solidity概述和开发工具的使用
原文链接:区块链技术语言:Solidity(一):概述和开发工具的使用 一、目录☛Solidity的概述☛Solidity开发工具remix的使用☛Solidity本地开发工具remix安装二、Solidity的概述Solidity 是一门为实现智能合约而创建的高级编程语言。这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的...原创 2018-09-14 18:52:26 · 859 阅读 · 0 评论 -
【链块技术35期】区块链技术语言(二十七)——Go语言并发编程(上)
原文链接 区块链技术语言(二十七):Go语言并发编程(上)并发编程分为上、下两节。这一节包括了并发编程的概述、goroutine和channel的部分内容。一、概述1.1 并行和并发并行(parallel):在多个处理器上同时执行多条指令,如图1所示。并发(concurrency):同一时刻只有一条指令在执行,但多个进程指令被快速轮换地执行,使得宏观上具有多个进程同时执行的...原创 2018-09-12 16:11:34 · 423 阅读 · 0 评论 -
【链块技术56期】超级账本Fabric教程(四):使用docker编译fabric源码(上)
原文链接:超级账本Fabric教程(四):使用docker编译fabric源码(上)本文介绍如何在docker镜像中编译fabric源码,方便修改代码后快速测试。 一、前言 本文档的搭建流程基于如下环境:操作系统:unbuntu16.04 二、实验前准备 在搭建fabric网络之前先要安装一些必要的软件 2.1 安装gitsudo apt-ge...原创 2018-12-26 10:38:38 · 796 阅读 · 0 评论