区块链
文章平均质量分 71
正如此时
这个作者很懒,什么都没留下…
展开
-
Solidity——Create2
Solidity——Create2介绍君士坦丁堡硬升级中引入了一个新操作码 CREATE2 ,它使用新的方式来计算常见的合约地址,让生成的合约地址更具有可控性。具体内容在 CREATE2 以前,CREATE指令创建的合约地址是通通过交易发起者(sender)的地址以及交易序号(nonce)来计算确定的。sender 和 nonce 进行 RLP 编码,然后用 Keccak-256 进行 hash 计算(伪码):keccak256(rlp([sender, nonce]))而 CREATE2 指原创 2022-05-04 15:20:11 · 3654 阅读 · 0 评论 -
区块链知识总结
区块链知识总结https://www.processon.com/view/link/6268a8297d9c0807282864ca原创 2022-05-19 15:53:13 · 3250 阅读 · 0 评论 -
IPFS探究
IPFS探究介绍IPFS(星际文件系统)是一个旨在创建持久且分布式存储和共享文件的网络传输协议。它是一种内容可寻址的对等超媒体分发协议。在IPFS网络中的节点将构成一个分布式文件系统。它是一个开放源代码项目,自2014年开始由Protocol Labs在开源社区的帮助下发展。其最初由Juan Benet设计。优缺点IPFS使用上可以简单理解为迅雷Plus,原理上一般是对标HTTP协议。超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,原创 2022-04-29 19:33:44 · 2509 阅读 · 0 评论 -
Uniswap探究
Uniswap探究介绍Uniswap是一种基于以太坊的协议,旨在促进ETH和ERC20 代币数字资产之间的自动兑换交易,它的设计目标是:易用性、gas高利用率、抗审查性和零抽租。ease-of-use(易用性):Token A换Token B,在Uniswap也只要发出一笔交易就能完成兑换,在其它交易所中可能需要发两笔交易:第一笔将Token A换成某种媒介货币,如ETH, DAI等,然后再发第二笔交易换成Token B。gas efficiency(gas高利用率):在Uniswap上消耗原创 2022-04-25 15:57:58 · 3103 阅读 · 0 评论 -
keccak256初探
keccak256初探仅做了解介绍背景以太坊在许多地方使用_Keccak-256_加密哈希函数。Keccak-256被设计为于2007年举行的SHA-3密码哈希函数竞赛的候选者。Keccak是获胜的算法,在2015年被标准化为 FIPS(联邦信息处理标准)。不过NIST接受原始的Keccak256设计后,更改了Padding的格式, 以太坊坚持使用了原始的方案,因为这一更改存在争议,导致了正式的SHA3实现和原始的Keccak不兼容。用途为了隐藏起某些信息,且保证这些信息不被篡改,原创 2022-04-16 15:09:48 · 11842 阅读 · 0 评论 -
Solidity中引入的SPDX是什么
Solidity中引入的SPDX是什么起因Solidity ^0.6.8 要求引入 SPDX 许可证,否则会出现警告:Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SP原创 2022-04-14 19:07:56 · 5523 阅读 · 0 评论 -
以太坊分片探究
以太坊分片探究CAP难题CAP问题说区块链试图拥有三个属性,常规情况下,只能得到这三个中的两个。这三个属性是:可扩展性:该链可以处理比单个常规节点(想想:消费者笔记本电脑)可以验证的交易更多的交易。去中心化:链可以运行,而无需依赖一小组大型中心化参与者。这通常被解释为意味着不应该有任何信任(或什至诚实多数假设)您无法仅使用消费笔记本电脑加入的一组节点。安全性:链可以抵抗很大比例的参与节点试图对其进行攻击(理想情况下为 50%;任何高于 25% 的都可以,5% 绝对不行)。对于以上三个问题,目原创 2022-04-11 20:53:59 · 4602 阅读 · 0 评论 -
以太坊Ghost协议
以太坊Ghost协议什么是GHOST协议GHOST协议是Yonatan Sompolinsky和Aviv Zohar提出的一种算法,全称为The Greedy Heaviest-Observed Sub-Tree(贪婪最重可观测子树算法),俗称幽灵协议GHOST的优点高吞吐量比特币为了保障其安全性,采用最长链规则,并固定了区块大小和出块时间间隔,从而导致其低吞吐量(<10Tps)和长时间区块确认间隔(6个区块,每个区块平均需要10分钟),而通过使用GHOST,以太坊中的出块时间被缩短为了原创 2022-04-03 20:12:58 · 5050 阅读 · 0 评论 -
以太坊源码阅读6——geth启动流程
以太坊源码阅读6——geth启动流程介绍geth是我们的go-ethereum最主要的一个命令行工具。 也是我们的各种网络的接入点(主网络main-net 测试网络test-net 和私有网络)。支持运行在全节点模式或者轻量级节点模式。 其他程序可以通过它暴露的JSON RPC调用来访问以太坊网络的功能。如果什么命令都不输入直接运行geth。 就会默认启动一个全节点模式的节点。 连接到主网络。init在正式启动之前会先进行调用init函数初始化func init() { // Initial原创 2022-03-25 18:43:36 · 5926 阅读 · 0 评论 -
闪电网络探究
闪电网络探究介绍闪电网络(Lightning Network)是工作在区块链上(主要面向比特币)的第二层支付协议。其设计目的是实现交易双方的即时交易,而区块链的交易频率则受限于其容量。闪电网络的主要思路为将大量交易放到比特币区块链之外进行。闪电网络通过智能合约来完善链下的交易渠道。在整个交易中,智能合约起到了中介的重要角色,而区块链则确保最终的交易结果被确认。原理闪电网络是基于微支付通道演进而来,创造性的设计出了两种类型的交易合约:序列到期可撤销合约RSMC(Revocable Sequence原创 2022-03-24 19:25:16 · 4683 阅读 · 0 评论 -
NFT探究
NFT探究简介在区块链上,加密货币分为原生币(Coin)和通证(Token)两大类。原生币如比特币、以太坊等拥有自己的主链,使用链上的交易来维护账本数据。通证是依附于现有的区块链,使用智能合约拓展生态系统,如依附于以太坊而发布的各类Token。NFT全称是NonFungibleToken,中文是非同质化代币(凭证),通过遍布全球的区块链网络中所有节点共同保证NFT的所有权并通过区块链上的智能合约进行NFT的存储和交易,不同于比特币同质化的形式,NFT的特性是独一无二的,是一种独特的、易于验证的数字资产原创 2022-03-24 17:05:23 · 5116 阅读 · 0 评论 -
以太坊源码阅读5——POW源码分析
以太坊源码阅读5——POW源码分析介绍POW,proof of work,即工作量证明,是著名公bitcoin所采用的共识算法。简单来说,pow就是一个证明,由矿工使用算力进行计算(挖矿),竞争记账权,获得记账权的矿工将获得奖励和记录账本的权力。其过程大致如下:全网矿工会监听全网的数据记录收到数据后,矿工验证交易并构建区块信息,包括区块头和区块体努力进行hash运算(求X)找到hash的矿工向全网公告自己产生的新区块源代码分析共识引擎接口// Engine 引擎是一种原创 2022-03-21 20:26:49 · 4438 阅读 · 0 评论 -
共识机制——POS与DPOS探究
共识机制——POS与DPOS探究共识机制是分布式应用软件特有的算法机制。通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个分布式节点能够达成共识,我们就可以认为全网对此也能够达成共识。POS介绍Proof-of-stake(POS)是加密货币的区块链网络达到分布式共识的一种算法。在基于Pos的加密货币中,下一个区块的创建者是通过组合随机选择,财富值,或者是年龄等条件选择出来的。相反的是,基于Pow的加密货币(比如比特币)是通过破解hash谜题来决定区块的原创 2022-03-19 20:05:02 · 3217 阅读 · 0 评论 -
Hardhat快速上手
Hardhat快速上手介绍Hardhat是一个方便在以太坊上进行构建的任务运行器。使用它可以帮助开发人员管理和自动化构建智能合约和dApp的过程中固有的重复任务,以及轻松地围绕此工作流程引入更多功能。安装安装nodejs安装hardhatmkdir hardhat-tutorial cd hardhat-tutorial npm init --yes npm install --save-dev hardhat在安装Hardhat的目录下运行:npx hardhat使用键盘选原创 2022-03-19 19:27:53 · 5810 阅读 · 0 评论 -
以太坊源码阅读3——MPT原理
以太坊源码阅读3——MPT原理介绍MPT(Merkel-Patricia Tree),翻译为梅克尔-帕特里夏树MPT提供了一个基于密码学验证的底层数据结构,用来存储键值对( key-value)关系MPT是完全确定性的,这是指在一颗MPT上一-组键值对是唯一确定的,相同内容的键可以保证找到同样的值,并且有同样的根哈希( root hash)MPT的插入、查找、删除操作的事件复杂度都是0(log(n)),相对于其它基于复杂比较的树结构(比如红黑树),MPT更容易理解,也更易于编码实现字原创 2022-03-14 19:38:54 · 5232 阅读 · 0 评论 -
以太坊技术浅探
目录一、技术背景 二、 关键技术 2.1 智能合约 2.2 共识算法 2.3 加密技术 2.4 P2P模型 2.5 账户模型 三、 创新方向 3.1 零识证明 3.2 智能合约钱包 3.3 信用委托 3.4 玩赚模式 四、典型应用 4.1 MetaMask 4.2 Swarm 4.3 BTCRelay 五、个人展望 以太坊技术探究摘要:区块链技术是近十年来的新兴技术,具有去中心化、不可篡改、数据公开透明等优点,是分布式数据...原创 2022-03-13 20:16:10 · 4696 阅读 · 0 评论 -
以太坊源码阅读2——RLP编码
以太坊源码阅读2——RLP编码RLP介绍目前网上的资料都是RLP(Recursive Length prefix),叫递归长度前缀编码,但目前源码的doc.go的第20行里面的注释写的是The purpose of RLP (Recursive Linear Prefix) is to encode arbitrarily nested arrays ofbinary data即:RLP(递归线性前缀)的目的是对任意嵌套的二进制数据数组进行编码先按照RLP(Recursive Length原创 2022-03-13 19:58:40 · 3533 阅读 · 0 评论 -
以太坊源码阅读1——准备环境
以太坊源码阅读1——准备环境基本环境win10家庭版IntelliJ IDEA 2021.3.2(GOLAND等也行)环境准备由于ethereum是用go写的,需要准备一下go的环境下载go插件准备go的SDKIDE有时候会请求帮忙下载,同意的话就不用去其他地方下载了去官网或者国内镜像(Go下载 - Go语言中文网 - Golang中文社区 (studygolang.com))下载SDK安装后将其添加到环境变量中添加系统变量,GOROOT是安装目录,GOPAT原创 2022-03-10 20:15:11 · 2567 阅读 · 0 评论 -
智能合约项目开发实例
智能合约项目开发实例原创 2022-03-07 22:48:46 · 3769 阅读 · 0 评论 -
windows下安装Ganache
windows下安装Ganache简介TestRPC通过在本地使用内存模拟一个以太坊环境,提供命令行功能,可以查询以太坊的状态。后来TestRPC改名为Ganache CLI,成为truffle中的一个重要成员,而Ganache就专指带图形界面的程序。下载到官网(Truffle Suite - Truffle Suite)点击dowload,由于国外网络问题,有时候会打不开双击自动安装,但这种办法似乎无法修改安装路径还有一种办法,修改后缀名为zip,直接解压,双击app下的Ganac原创 2022-02-27 18:50:20 · 6265 阅读 · 2 评论 -
windows下安装truffle
windows下安装truffle介绍Truffle 是一个开发智能合约的工具,也可以用来做 DAPP安装在node的环境下,执行命令# 安装trufflenpm install -g truffle# 查询当前的 Truffle 版本truffle -v注意这里node版本不能太高,我在使用Node 16.14.0时出现以下错误yp ERR! find Pythongyp ERR! find Python Python is not set from command line or原创 2022-02-27 18:48:06 · 3011 阅读 · 0 评论 -
使用Geth搭建私链
使用Geth搭建私链Go-ethereum客户端通常被称为Geth,它是个命令行界面,执行在Go上实现的完整以太坊节点。Geth得益于Go语言的多平台特性,支持在多个平台上使用(比如Windows、Linux、Mac)。Geth是以太坊协议的具体落地实现,通过Geth,你可以实现以太坊的各种功能,如账户的新建编辑删除,开启挖矿,ether币的转移,智能合约的部署和执行等等。以下操作均在windows平台下操作安装前往官网下载https://geth.ethereum.org/downloads/原创 2021-07-02 17:46:45 · 9043 阅读 · 0 评论