![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
BlockChain
文章平均质量分 87
区块链学习
又菜又爱玩٩( ö̆ ) و
人菜就要多学习
展开
-
区块链基本概念及核心技术
文章目录基本概念一、区块链是现有技术的组合二、区块链分类三、区块链技术演进四、区块内容(以BTC为例)**block header****block body**核心技术一、密码学哈希算法 Hash Algorithm签名 Signature零知识证明 zkSNARK同态隐藏 HH二、数据结构区块链 Block Chain默克尔树 Merkle tree默克尔前缀树 Merkle Patricia tree三、共识机制分布式理论分布式共识算法比特币共识协议挖矿难度调整挖矿概率四、智能合约基本概念一、区块原创 2020-07-25 13:36:26 · 3114 阅读 · 2 评论 -
Fabric-02Peer、Orderer以及CA
五、Peer5.1Fabric Peer特点联盟链中,peer节点代表各个企业和组织。区块链网络主要是由一系列peer节点组成,peer节点是整个区块链网络的基础,因为它是账本和智能合约的载体,通过智能合约,账本以不可篡改的方式记录了交易的全过程;每个节点可以加入一个或多个channel;每个channel维护自己的一个或多个账本,账本之间是隔离的;每个peer可以安装不同的智能合约;交易完成后,peer会发送event事件给client端;每个channel都有local MSP,提原创 2021-07-11 13:35:51 · 7263 阅读 · 1 评论 -
Fabric-01模型及交易流程
内容及图片整理自IBM开放技术微讲堂一、Fabric Characteristic多重认证机制高度模块化通用语言编写智能合约可插拔的共识机制隐私性没有挖矿执行-排序-验证 vs 排序-执行二、Fabric ModelFabric模型示例图(以一个channel为例):2.1Organizationfabric中最小单位是组织Organization。组织可以是工厂、零售商、批发商或者监管机构等,它们之间组成了一个联盟,每个都是以组织的名义参与到网络中。组织是由MSP(M.原创 2021-07-11 12:42:25 · 527 阅读 · 0 评论 -
web3.js连接geth私链
准备工作0.安装geth(Mac系统)brew install ethereum1.查看geth版本geth versionGethVersion: 1.10.1-stableArchitecture: amd64Go Version: go1.16Operating System: darwinGOPATH=GOROOT=go同步公网数据1.指定数据目录同步区块(默认Ethereum主网、full模式)geth --datadir ./data 2.以快速模式同步主网原创 2021-03-30 16:04:36 · 3499 阅读 · 0 评论 -
智能合约编译、部署、调用
〇、准备工作安装node.js安装solc安装web3.js安装mocha启动私链或公网区块链节点创建文件目录......mkdir contract_workflowcd contract_workflowmkdir contracts #存放智能合约.sol文件mkdir compiled #存放编译后的json文件mkdir scripts #存放脚本js文件mkdir tests #存放测试调用脚本js文件一、智能合约开发通过solidity语言,实现一原创 2021-04-19 17:28:15 · 1096 阅读 · 0 评论 -
Solidity开发智能合约
一、Solidity简介1.介绍solidity是一门面向合约的、为实现智能合约而创建的高级编程语言,能在以太坊虚拟机(EVM)上运行。它是一门静态语言。内含的类型除了常见编程语言中的标准类型,还包括address等以太坊独有的类型。solidity源码文件通常以.sol作为扩展名。2.语言特性它的语法接近于Javascript,是一种面向对象的语言。但作为一种真正意义上运行在网络上的去中心合约,它又有很多的不同,下面列举一些:以太坊底层是基于帐户,而非UTXO的,所以有一个特殊的Address原创 2021-04-09 17:46:23 · 2124 阅读 · 0 评论 -
Go-02语言并发Goroutine&Channel
一、协程概念进程(Process),线程(Thread),协程(Coroutine)进程是一个程序在一个数据集中的一次动态执行过程,可以简单理解为“正在执行的程序”,它是CPU资源分配和调度的独立单位。线程是在进程之后发展出来的概念。它是一个基本的CPU执行单元,也是程序执行过程中的最小单元,由线程ID、程序计数器、寄存器集合和堆栈共同组成。一个进程可以包含多个线程。协程是一种用户态的轻量级线程,又称微线程,英文名Coroutine,协程的调度完全由用户控制。二、Goroutinego中使用Go原创 2021-03-09 15:14:44 · 135 阅读 · 0 评论 -
Go-01语言基础语法
文章目录〇、go语言特点1.并发编程2.函数多返回值3.异常处理4.类型推导5.实现接口6.基于首字母的可访问特性7.不用的import或者变量引起编译错误8.语句结尾9.括号一、变量1.变量2.声明变量3.多变量声明二、常量1.常量2.iota3.枚举三、数据类型1.基本数据类型1.1布尔型bool1.2数值型1.2.1整数型1.2.2浮点型1.3字符串型string1.4数据类型转换2. 复合类型(派生类型)四、运算符五、流程结构六、数组array1.概念2.语法2.1声明和初始化2.2访问2.3遍历3原创 2021-03-07 12:07:02 · 459 阅读 · 0 评论 -
ETH-25美链
内容整理自 北京大学肖臻老师《区块链技术与应用》公开课 ETH-25-美链智能合约中又一安全漏洞的例子,于2018.04发生的事件,这个智能合约叫做美链(Beauty Chain)。美链是在以太坊平台上发行的代币,以太坊上有很多...原创 2020-04-30 11:59:07 · 666 阅读 · 0 评论 -
ETH-24TheDAO事件带来的反思
内容整理自 北京大学肖臻老师《区块链技术与应用》公开课 ETH-24-TheDAO智能合约真的智能么?智能合约并没有用到人工智能,应该叫做“自动合约”,按照事先写好的代码自动执行某些操作。现实世界中自动执行某些操作的例子是ATM取款机,物理世界的自动合约,插入银行卡输入密码,就会自动把钱给你。智能合约其实并不智能,反而有些“笨”,因为一旦写好之后就无法修改,实际上是一种代码合同。...原创 2020-04-29 22:59:21 · 422 阅读 · 0 评论 -
ETH-23TheDAO
内容整理自 北京大学肖臻老师《区块链技术与应用》公开课 ETH-23-TheDAO2016年一个真实案例,该案例在以太坊历史上造成了以太坊的分裂,可以说改写了以太坊的历史。比特币实现了去中心化的货币,以太坊实现了去中心化的合约,所以有人提出把所有的都改成去中心化,DAO(Decentrallized Autonomous Organization,去中心化自治组织)这个概念就是在这个背...原创 2020-04-26 23:43:39 · 571 阅读 · 0 评论 -
ETH-22智能合约
内容整理自 北京大学肖臻老师《区块链技术与应用》公开课 ETH-22-智能合约智能合约是以太坊的精髓,也是以太坊和比特币的主要区别。智能合约的本质是运行在区块链上的一段代码,代码的逻辑定义了合约的内容。智能合约的账户保存了合约当前的运行状态:balance 当前余额,nonce 交易次数,code 合约代码,storage 存储,数据结构是一棵MPTSolidity是智能合约...原创 2020-05-03 02:47:21 · 1267 阅读 · 0 评论 -
ETH-21权益证明
内容整理自 北京大学肖臻老师《区块链技术与应用》公开课 21-ETH-权益证明比特币和以太坊都是用的基于工作量的证明,这种共识机制一个普遍批评就是浪费电。比特币能耗随时间变化的情况:随时间不断增长比特币具体的统计数据:比特币每年的总能耗大约是70TWh相当于智利国家的能耗相当于647万多美国家庭的能耗占全世界总能耗的0.31%平均每个交易消耗1014KWh...原创 2020-04-26 20:56:58 · 634 阅读 · 2 评论 -
ETH-20难度调整
内容整理自 北京大学肖臻老师《区块链技术与应用》公开课 20-ETH-难度调整图片来源于视频难度调整公式:H是当前区块,Hi是这个区块的序号,D(H)是当前区块的难度。公式有两部分,基础部分为了维持出块时间大概在15秒左右;难度炸弹主要是为了向权益证明过渡。第一部分调整的方法是在父区块的难度基础上加上自调整部分。所谓父区块就是当前区块链的最后一个区块,对于正在挖的区块来说就...原创 2020-04-25 21:04:24 · 3346 阅读 · 0 评论 -
ETH-17交易树和收据树
内容整理自 北京大学肖臻老师《区块链技术与应用》公开课ETH-17交易树和收据树每次发布一个区块,区块中所包含的交易会组织成一棵交易树。每个交易执行完之后会形成一个收据,记录交易的相关信息,交易树与收据树上的节点是一一对应的。增加收据树是考虑到以太坊的智能合约执行过程比较复杂,所以通过增加收据树的结构有利于快速查询一些执行结果。交易树和收据树都是MPT,比特币中的交易树是普通的merkl...原创 2020-03-27 09:46:11 · 402 阅读 · 0 评论 -
ETH-16状态树
内容整理自 北京大学肖臻老师《区块链技术与应用》公开课ETH-16-状态树账户地址到账户状态的映射 addr-->state 以太坊中的账户地址是160bits 40个十六进制的数 key-value pair1.hash table?提供merkle proof,证明账户余额,把哈希表中的元素组成merkle tree,算出root hash,保存在block he...原创 2020-03-25 17:14:14 · 445 阅读 · 0 评论 -
ETH-14以太坊概述
内容整理自 北京大学肖臻老师《区块链技术与应用》公开课 14-ETH-以太坊概述与比特币的不同比特币称为区块链1.0,以太坊称为区块链2.0。针对比特币的一些问题进行了改进:1.出块时间降到十几秒2.设计基于ghost的共识协议3.挖矿使用的mining puzzle,对内存要求高,memory hard mining puzzle,在一定程度上限制了asic芯片的使用,称...原创 2020-03-24 17:19:51 · 389 阅读 · 0 评论