区块链零基础到实战教程
文章平均质量分 84
区块链,就是一个又一个区块组成的链条。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。精通区块链数字钱包、DAPP、智能合约、NFT、元宇宙应用开发
区块链(Web3)开发工程师
全栈工程师、区块链开发工程师、智能合约开发工程、Web3.0工程师
精通Wallet、Token、NFT、Exchange、DEFI、DAPP(web3开发)、智能合约、Gamefi、元宇宙开发。
大家有任何需要,欢迎私信或评论联系我!
展开
-
【区块链 | DAPP】Dapp应该怎么开发?分享一篇Dapp开发的逻辑(分享) 更新中~
写在前面本篇文章将带领你从零学会一个Dapp开发,笔者从最初的不了解区块链概念到如今精通Dapp、智能合约开发,中间踩过无数的坑,经历过无数困难!一、什么是Dapp?去中心化应用(decentralized application),或简称DApp,通常与区块链平台例如以太坊相联系,是一个在分布式点对点网络上运行的应用程序,而不是在一台中央计算机上。这样做的主要好处是,网络的用户不依赖于中央计算机来发送和接收信息。为了充分理解去中心化应用程序与中心化应用程序之间的区别,我们可以看一下中心.原创 2020-12-04 15:13:45 · 10102 阅读 · 15 评论 -
【区块链 | NFT】NFT游戏怎么开发?详细的开发指南来了【2022】
本文适用于有开发创建 NFT 游戏的想法并希望大致了解所需流程和工具的人。我们不会详细介绍每种编程语言, 但我们会链接重要资源并提供有关NFT游戏开发的全景视角。目录1、NFT 及其标准2、2021 NFT 和 NFT 游戏的兴起3、开发指南第 1 步:NFT游戏设计第 2 步:NFT游戏开发第 3 步:NFT游戏测试第 4 步:NFT游戏部署和推广1、NFT 及其标准NFT代表 Non-Fungible Tokens,根据定义,它是不可替代的,这意味着它.原创 2022-04-13 15:53:10 · 5834 阅读 · 0 评论 -
Sidetree协议
转载自 博客链接:转载 2023-09-07 16:14:13 · 237 阅读 · 0 评论 -
【区块链 | IPFS】IPFS cluster私有网络集群搭建
(每个节点安装) 用于初始化集群 peer 并运行它的守护进程,启动一个cluster对等节点(一个节点安装即可) 管理集群的节点和数据,用于和ipfs-cluster-service进行交互(可选,运行一个follower peer没有写权限,用于加入协作集群)2. 下载安装cluster1. 源代码编译安装我们将ipfs-cluster克隆到 GOPATH 下,然后 make 编译安装(系统已安装 make):查看一下是否安装成功:2. 下载二进制安装3. 初始化。原创 2023-09-06 10:21:09 · 2103 阅读 · 2 评论 -
【区块链 | IPFS】浅谈 | IPFS数据存储原理
IPFS在数据存储方面采用的是分散式的文件存储,区别于HTTP协议的位置寻址,IPFS是基于内容寻址,当文件上传到IPFS节点存储时,节点会对文件进行Merkle DAG(默克尔有向无环图)的格式组织分块存储,在存储完毕后,文件将以Merkle DAG的根哈希数来表示该文件,用户可以从IPFS构建的网络中以DHT(分布式哈希表)的方式获取文件。IPFS并不会要求每一个节点都存储所有的内容,节点的所有者可以自由选择想要维持的数据,在备份了自己的数据之外,自愿的为其他的关注的内容提供服务。原创 2023-08-31 09:35:33 · 1731 阅读 · 0 评论 -
【区块链 | GameFi】 - 传统游戏进军链游GameFi的探索之路
早在 2017 年,世界首款区块链游戏《CryptoKitties》上线,开启了 NFT+ 链游赛道,之后市面上的链游产品大多类似传统的卡牌收集类游戏,以 NFT(数字藏品)为核心,主要通过花费时间去收集资源的方式进行,游戏体验单一。2019 年开始,P2E(Play to Earn 边玩边赚)的形式兴起,用单币或双币制的经济系统开启了链游的新体验,代表作《Axie Infinity》在 2021 年时随着 Gamefi 的热度爆发,以单日收入超过《王者荣耀》一举成为全球最吸金手游。原创 2023-06-25 14:17:30 · 957 阅读 · 0 评论 -
【区块链 | L2】作为Layer2赛道的领跑者,如何理解 Arbitrum?
Rollup 和 AnyTrust 在很多方面都很相似,但有一个关键区别:在 Rollup 中,所有数据都发布在 L1 上(允许任何人以验证者身份无需许可地加入),而在 AnyTrust 中,数据是在链下管理的。事实上,大多数时候,使用 Arbitrum 的体验与使用以太坊的体验相同(重要的例外是它更便宜、更快)。Arbitrum 是一个构建在以太坊之上的区块链网络。用户所做的任何其他事情——例如,将资金从以太坊存入 Arbitrum,或使用部署在 Arbitrum 链上的 dapp——不会导致此延迟期。原创 2023-06-07 15:10:34 · 1670 阅读 · 0 评论 -
【区块链 | L2】详解Layer 2扩展解决方案Optimism(OP)是如何工作的?
Optimism 核心团队有现实世界的限制,建立在 Optimism 之上的项目有现实世界的需求,而参与 Optimism 的用户有现实世界的问题。一旦一个承诺被认为是最终的,以太坊上的智能合约可以安全地接受基于该承诺的Optimism状态的证明。在 Optimism 上执行交易的过程与在以太坊上相同:我们加载 Optimism 状态,针对该状态应用交易,然后记录由此产生的状态变化。一旦用户的存款在 Optimism 上被检测到并最终确定,用户的账户将在 L2 上获得相应数量的 ETH。原创 2023-06-07 15:05:32 · 1029 阅读 · 0 评论 -
【区块链 | 预言机】从零开始使用Chainlink预言机(3) - 如何使用Chainlink Automation实现智能合约执行的自动化
智能合约不能自己执行,这意味着它们需要一个外部拥有账户、预言机或合约来启动它们自己的功能。这给许多dApp带来了问题,比如这类dApp要求合约在固定时间间隔(如每24小时),或者满足预定条件(如以太坊达到特定价格),或者依据某种计算(如贷款被计算为抵押不足)执行。在过去,开发者会创建并维护他们自己的中心化脚本或者手动触发智能合约的执行以解决问题。然而,这实际上破坏了构建去中心化区块链应用程序的目的,并且如果中心化脚本或手动触发过程失败,就会出现停机的可能。在本教程中,你将学习如何使用Chainlink Au原创 2022-12-06 16:55:31 · 535 阅读 · 0 评论 -
【区块链 | 预言机】从零开始使用Chainlink预言机(2)- 智能合约中使用更安全的随机数-代码实战
Chainlink最近推出一款革命性的产品,VRF—Verifiable Random Function可验证随机数,给智能合约带来了真正安全的随机数。本文我们就来介绍一下如何在智能合约中使用VRF吧。我们先简要介绍一下Chainlink VFR的工作流程。整个过程中有两次的交易提交确认的过程,用户合约需要支付LINK给VRF合约作为交易费用。下面我们就通过写一个猜数字的小游戏,来学习如何使用Chainlink VRF。首先,新建一个truffle项目,安装Chainlink开发包在目录下新建一个合约原创 2022-12-06 16:45:36 · 1675 阅读 · 0 评论 -
【区块链 | 预言机】从零开始使用Chainlink预言机(1) - 获取价格等数据(公共数据Data Feeds & 外部API)
目录概要一、直接从API获取价格(外部API获取数据)1 创建truffle项目2 安装Chainlink开发库3 创建用户合约4 将用户合约部署到Ropsten测试网络上5 向合约地址转入LINK6 编写测试脚本二、价格参考数据 Chainlink Data Feeds1 新建项目2 新建用户合约文件3 找到我们需要的参考数据合约地址4 配置参考合约地址5 使用参考合约获取价格数据6 完整示例7 编写测试脚本调用合约Chainlink目前提供产品有Chainlink 数据源是将您的智能合约连接到真实世界数原创 2022-12-06 16:22:41 · 631 阅读 · 0 评论 -
【区块链 | 智能合约】Ethereum源代码(14)- 以太坊Bloom过滤器实现原理及应用场景分析
目录一、Bloom过滤器的数据结构和reciept创建Bloom的过程二、Bloom过滤器的实际应用三、外部调用接口查找log的流程总结:type Bloom [BloomByteLength]byteBloomByteLength = 256Bloom 就是一个256个字节数组。一共2048位。我们看看怎么把庞大的收据日志数据放到bloom过滤器里面的。1,先看看bloom9(b []byte)算法函数。1.1, 首先将传入的数据,进行hash256的运算,得到一个32字节的hash1.2,原创 2022-12-06 11:01:01 · 383 阅读 · 0 评论 -
【区块链 | 智能合约】Ethereum源代码(13)- 以太坊交易加密签名广播及EVM解析分析
待更新原创 2022-12-05 17:44:54 · 673 阅读 · 0 评论 -
【区块链 | 智能合约】Ethereum源代码(12)- 以太坊通过EVM执行交易过程分析
目录一、创建EVM,通过EVM执行交易流程二、EVM 的虚拟机解析器通过运行合约指令,执行智能合约代码以太坊虚拟机在执行交易分为两个部分,第一部分是创建EVM,计算交易金额,设置交易对象,计算交易gas花销;第二部分是EVM 的虚拟机解析器通过合约指令,执行智能合约代码,具体来看看源码。上一节分析BlockChain调用processor.Process()(core/state_processor.go:59)遍历block的所有交易首先调用tx.Message()方法产生交易Message。这个方法通过原创 2022-12-05 17:15:52 · 748 阅读 · 0 评论 -
【区块链 | 智能合约】Ethereum源代码(11)- 以太坊核心BlockChain源码分析
前面几节都在分析以太坊的通信协议,怎么广播,怎么同步,怎么下载。这一节讲讲以太坊的核心模块BlockChain,也就是以太坊的区块链。一,BlockChain的初始化Ethereum服务初始化func init() 的时候会调用core.SetupGenesisBlock来加载创始区块。顾名思义,创始区块就是以太坊区块链中的第一个区块,number值为0。紧接着调用stack, backend := makeFullNode(ctx) utils.RegisterEthService(stack,原创 2022-12-05 11:00:26 · 1633 阅读 · 0 评论 -
【区块链 | 智能合约】Ethereum源代码(10)- 以太坊Downloader源码分析
上一节分析到Fetcher用于同步网络节点的新区块和新的交易数据,如果新区块和本地最新的区块相隔距离较远,说明本地区块数据太旧,Fetcher就不会同步这些区块。2,有两种获取方式,首先走的是skeleton方式,从查找到的共同祖先区块+192个区块位置开始,每隔192个区块,获取128个区块头。6,更新同步状态信息后,把pivot值对应的result 调用commitPivotBlock插入本地区块链中,并调用FastSyncCommitHead,记录这个pivot的hash值。原创 2022-11-22 11:24:46 · 1306 阅读 · 0 评论 -
【区块链 | 智能合约】Ethereum源代码(9)- 以太坊P2P协议接收广播的处理和Fetcher源码分析
然后每个hash blockdata 调用 h.blockFetcher.Notify(peer.ID(), unknownHashes[i], unknownNumbers[i], time.Now(), peer.RequestOneHeader, peer.RequestBodies) 方法,除了传入block的hash值和block的number值,还需要传入当前的时间戳,peer.go的两个函数指针。3,如果本节点已经有这个hash的block,则放弃这个hash。原创 2022-11-17 22:39:46 · 695 阅读 · 0 评论 -
【区块链 | 智能合约】Ethereum源代码(8)- Ethereum服务和以太坊P2P协议发送广播源码分析
在“”一文中,我们提到Ethereum作为一个service,被Node 注册进去。Node start的时候会启动其注册的所有服务,Ethereum service也是一样。原创 2022-11-17 18:56:27 · 1931 阅读 · 0 评论 -
【区块链 | 智能合约】Ethereum源代码(7)- 区块和交易广播
执行完之后直接return出去,再次执行此函数,此时不会走ture分支,直接判断判断本地是否有区块,如果有则发送区区块哈希给剩下的节点,如果没有,则不做发送哈希的操作。值,如果传入的为true,则将区块block和总难度td发送给一部分节点,节点数为根号n;如果传入的为false,则将区块的hash发送给所有的节点。是用来存放要广播的块的队列,同时,要把广播的块标记为已知,还不能超过1024(广播哈希的过程跟广播区块的过程非常的类似,最终是由远程节点去处理。模块去同步这些广播的区块,接下的文章会讲到。原创 2022-11-17 14:32:22 · 470 阅读 · 0 评论 -
【区块链 | 智能合约】Ethereum源代码(5)- P2P网络启动
开启p2p网络主要包括:设置本地节点,监听TCP连接以及设置节点发现运行P2P网络之后主要包括:发起TCP连接并执行连接,以及相关的连接处理。原创 2022-11-16 18:00:45 · 301 阅读 · 0 评论 -
【区块链 | 智能合约】Ethereum源代码(4)- Ethereum RPC通信实例和原理代码分析(下)
Rpc/client.go 的CallContext()方法,如果不是http请求,选择走c.send(ctx, op, msg)方法。c.e.Encode(res)会调用enc.w.Write(b),这个w就是func (srv *Server) ServeHTTP(w http.ResponseWriter, r *http.Request)方法传入的http.ResponseWriter。如果这个请求的是通知,走通知的响应,否则走c.handleResponse(msg)原创 2022-11-16 17:23:54 · 334 阅读 · 0 评论 -
【区块链 | 智能合约】Ethereum源代码(3)- 以太坊RPC通信实例和原理代码分析(上)
上一节提到,以太坊在node start的时候启动了RPC服务,以太坊通过Rpc服务来实现以太坊相关接口的远程调用。这节我们用个实例来看看以太坊 RPC是如何工作的,以及以太坊RPC的源码的实现。原创 2022-11-15 15:56:02 · 2091 阅读 · 0 评论 -
【区块链 | 智能合约】Ethereum源代码(2)- go-ethereum 客户端入口代码和Node分析
Node就好像一个组装工厂,把以太坊相关功能装配起来,连接了以太坊的前端和后端,启动RPC供远程调用,启动了P2P server跟网络中的其他节点建立联系,开始了console 供命令行操作。从启动入口可以看到第一个启动的模块是node模块,通过makeFullNode函数来创建一个节点对象(在ETH里node可以认为是以太坊全网的一个节点,也可以认为是一个以太坊终端)。首先node start自己。这给我们扩展以太坊客户端的功能提供一个思路,我们可以把扩展功能封装成一个Service,塞给Node。原创 2022-11-15 14:25:22 · 1487 阅读 · 0 评论 -
【区块链 | 智能合约】Ethereum源代码(1)- 下载、编译、启动go-ethereum
这里要说明一下,为什么不从比特币源码分析写起:比特币作为区块链技术的鼻祖,它是每个区块链开发者永远的图腾,不到2万行代码撑起了整个区块链的宏伟蓝图。以太坊的优势在功能扩展性上面以及区块链应用平台的搭建,Fabric的优势在企业级区块链的应用上面,我更看好这两个技术未来的发展。这段时间一直在研究区块链技术,同时也在加紧研发自己公司的区块链钱包,对区块链相关技术有一定的研究心得,希望通过博文来记录和分享自己的一些心得体会,也欢迎对文章感兴趣的朋友来跟我交流和讨论。6, 附件:初始化 genesis.json。原创 2022-11-15 11:06:07 · 868 阅读 · 2 评论 -
【区块链 | 智能合约】Ethereum源代码 - 智能合约地址生成算法
利用这种算法,智能合约的地址不需要存储在区块上,只要知道区块的交易信息,就可以知道交易的发送者地址以及交易的nonce信息,从而计算出合约地址。当提交智能合约部署后,会返回智能合约的地址。原创 2022-11-10 16:50:35 · 1328 阅读 · 0 评论 -
【区块链 | solidity】js解析智能合约Solidity返回的struct
不少人在接收struct类型的返回值时不知道怎么处理,本文展示一种解析方法,以供各位学习交流,如有更好的方法,欢迎讨论。可以看到,整体上struct变成了一个数组,但是只有struct摆在前面的string类型数据是正常显示,而后面的uint都变成了形如**r {s: 1, e: 0, c: Array(1)}**的东西。首先看solidity代码,截取了关键部分,定义了一个结构体以及一个id到结构体的映射,该映射为public,意味着会自动生成getter函数。Solidity返回的struct。转载 2022-10-21 13:08:32 · 567 阅读 · 0 评论 -
【区块链 | Solidity】区块链抢红包代码,基于Solidity的抢红包代码
题目参考:solidity抢红包合约的实现_tzy577的博客-CSDN博客4.总结本人为代码小白(刚开始学solidity,求交流和学习途径)+蹩脚英语,目前随机数采用很简单粗暴的途径,也没有对uint256溢出问题进行保护,代码也没有完全参考题目,欢迎各位对代码进行测试,反应存在问题,一起学习交流,谢谢!转载 2022-10-08 10:04:37 · 296 阅读 · 0 评论 -
【区块链 | Merkle】使用Merkle Tree空投,白名单验证
默克尔树,在区块链出现前,曾广泛用于文件系统和P2P系统中。在区块链中,默克尔树常用于高效验证数据,如,实现空投,白名单,IDO,混币器等。默克尔树是一种hash树,底层叶子节点的hash变动会一层一层的传递直到树根root,所以roothash实际代表了底层所有数据的摘要,通过验证roothash来确定是否是它的叶子节点。那么只需要在链上记录树根就可以开始验证其叶子节点的归属,每当新增叶子节点,也只需更新roothash即可,而不必存储整棵树,并且roothash的计算也可放在链下进行。原创 2022-10-08 10:00:09 · 1055 阅读 · 0 评论 -
【区块链 | 以太坊】EVM 学习手册
EVM 学习手册 , 帮助我们了解以太坊虚拟机的底层原理。这个手册是为有抱负的超级开发者策划的EVM学习的资源清单。在第一性原理的思考中,你把事情归结为最基本的真理,然后你从那里推理。在智能合约领域,"以太坊虚拟机" 以及其算法和数据结构就是第一性原理。原创 2022-09-29 17:29:36 · 653 阅读 · 0 评论 -
【区块链 | IPFS】通过Web应用向IPFS上传文件
在Web应用中向IPFS上传文件与IPFS的交互最常见的方式是从客户端应用程序上传图片和视频等文件,但我发现,好像没有很直接明了的教程。在本教程中,你将通过使用ipfs-http-client,以尽可能少的代码(尽可能简单)来学习。这里的想法是在React中实现的,但应该可以相当容易地转移到任何其他JavaScript框架中,如Vue、Angular或Svelte。IPFS是一个去中心化的、点对点的文件共享协议。有各种类型的IPFS网关可用,有些是免费的,有些则不是。有些提供只读访问,有些则提供读写访问。你原创 2022-09-21 16:48:09 · 1236 阅读 · 0 评论 -
【区块链 | DID】去中心化身份(Decentralized ID, DID)介绍
在多数用到了区块链的解决方案上,往往都能用目前比较成熟的技术的另一个方案(除了数字货币本身)。而且区块链往往确实没有特别的优势。只要是这样,由于惰性的存在,区块链的落地就很难进行。其实我觉得可能区块链的应用确实是比较小众的,它就是一个分布式账簿数据库,并不是所有应用都要使用这种数据库的。区块链之所以热门起来也是因为比特币大涨,而似乎不是技术本身。那些本身需要用到分布式系统的应用,因为区块链热门而使用区块链,其实他们直接使用分布式系统就可以了。不应该是世界适应区块链,而应该是区块链适应世界。原创 2022-09-21 16:38:42 · 1318 阅读 · 0 评论 -
【区块链 | Solidity】以太坊Solidity如何实现海量空投代币?
通证token项目启动时,短期内繁荣生态,要舍得给粉丝们打币,把利益分出去。本文聚焦在技术层面,实现如何快速完成TOKEN海量空投,既要节约时间,又要节省TOKEN费用。原创 2022-09-21 16:17:14 · 933 阅读 · 0 评论 -
【区块链 | AAVE】一文讲清-DeFI王者AAVE最新的稳定币GHO提案
代币有此起披伏暴涨暴跌都是每日的精彩故事,但偏偏有一种很无聊的代币追求的是不涨跌(虽然稳定币不稳定也是行内趣事),当然,世界唯一的不变就是变化本身,因此稳定币也并非一开始指向绝对的稳定,其目标而是以相对稳定的锚定物为比较。对于大多数稳定币来说,这就是美元。我们从稳定币是什么开始,探讨他的价值,分类,收入来源。可以理解Aave 想涉足稳定币领域的根本动机,为了便于理解稳定币的为何能稳定,这一宏大的问题,咱们通过对整个MakerDao抵押生成DAI的生命周期,清算策略,安保措施等等逐个理解。原创 2022-09-21 16:11:10 · 254 阅读 · 0 评论 -
【区块链 | ENS】ENS中的Namehash加密逻辑
智能合约中计算namehash。原创 2022-09-21 13:59:48 · 641 阅读 · 0 评论 -
【区块链 | Vue】Vue.js对接WalletConnect教程
在本文中,我们将使用 WalletConnect 将钱包应用链接到我们使用Vue.js开发的去中心化应用。去中心化应用程序 (DApps) 的主要功能之一是能够连接钱包,这反过来又允许用户与 DApp 上的交易进行交互。它抽象了诸如交换网络、 提供签名者和其他为用户提供身份验证形式的功能等功能。连接钱包还充当网关,允许用户通过 DApp 使用他们的钱包地址作为授权身份在 区块链上进行和读取操作。原创 2022-09-19 14:19:12 · 2755 阅读 · 0 评论 -
【区块链 | example】学习这30个以太坊开发示例,让你成为80万都挖不走的区块链人才!
如果你想更加快速地学习Solidity,学习以太坊,学习区块链,你确实需要成为社区中的一员,这是十分有效且有趣的学习方式。,比如文档中关于智能合约的介绍Introduction to Smart Contracts ,还是要提醒你,在整个学习过程中,一定要做笔记,做笔记!,我切身体会到了加密TOkkken的狂热,急切需要一种平衡,急切停止这种狂热行为,我最终选择了离开,大概四五个月的时间吧。在社区中积极发言,提出问题,分享建议,甚至与 V神互动,可以支持他,也可以怼他(切记要有理有据)!原创 2022-09-06 13:40:33 · 566 阅读 · 0 评论 -
【区块链 | Solidity】您应该查看的 18 个 Solidity GitHub 存储库-智能合约
虽然您可以在不同的区块链上部署智能合约或称为 dApp 的类似应用程序,但 Solidity 是一个绝佳的起点。Hardhat 是一个用于编译、部署、测试和调试以太坊软件的开发环境。OpenZeppelin Contract 是一个用于安全智能合约开发的库。SolidState 是一个可升级的优先 Solidity 智能合约开发库。针对以太坊虚拟机的智能合约的基于 Python 的开发和测试框架。精选的 Solidity 资源、库、工具等的精选列表。Solidity 编程语言示例,以太坊的智能合约。原创 2022-09-06 10:49:21 · 581 阅读 · 0 评论 -
【区块链 | Openzeppelin】探索Openzeppelin 新增的跨链功能
Openzeppelin 新增了 CrossChain ()功能,看看如何使用它。原创 2022-09-06 10:43:34 · 680 阅读 · 0 评论 -
【区块链 | OpenZeppelin】OpenZeppelin 7个最常使用的合约
使用 OpenZeppelin 来帮助进行合约开发,即可以提高代码的安全性,又可以提高开发效率。是以太坊开发者的宝库,OpenZeppelin代码库包含了经过社区审查的ERC代币标准、安全协议以及很多的辅助工具库,这些代码可以帮助开发者专注业务逻辑的,而无需重新发明轮子。基于OpenZeppelin开发合约,即可以提高代码的安全性,又可以提高开发效率,文本列举了最应该添加到我们项目的 7个OpenZeppelin合约。原创 2022-09-06 10:46:26 · 1505 阅读 · 0 评论 -
【区块链 | OpenZeppelin】手把手交易使用OpenZeppelin Upgrades部署可升级智能合约
如何部署以太 坊可升级智能合约。原创 2022-09-01 17:50:53 · 766 阅读 · 0 评论