尚硅谷区块链笔记
文章平均质量分 83
白沙染赤
这个作者很懒,什么都没留下…
展开
-
《深入掌握以太坊核心技术》--16-MPT
它存储的键值对(path,value)可以表示为(sha3(ethereumAddress),rlp(ethereumAccount))基数树又叫压缩前缀树(compactprefixtree),是一种空间优化后的字典树,其中如果一个节点只有唯一的子节点那么这个子节点就会与父节点合并存储。每一个i0到in的“槽位”,存储的或者是null,或者是指向另一节点的指针。交易树(transaction trie)收据树(receipts trie)存储树(storage trie)状态树(state trie)原创 2024-05-30 20:17:43 · 1202 阅读 · 0 评论 -
《深入掌握以太坊核心技术》--17-以太坊难度调整
难度(Difficulty)一词来源于区块链技术的先驱比特币,用来度量挖出一个区块平均需要的运算次数。挖矿本质上就是在求解一个谜题,不同的电子币设置了不同的谜题,比特币使用SHA-256、莱特币使用Scrypt、以太坊使用Ethash。一个谜题的解的所有可能取值被称为解的空间,挖矿就是在这些可能的取值中寻找一个解这些谜题都有如下共同的特点:没有比穷举法更有效的求解方法解在空间中均匀分布,从而使每一次穷举尝试找到一个解的概率基本一致解的空间足够大,保证一定能够找到解。原创 2024-05-30 20:17:29 · 446 阅读 · 0 评论 -
《深入掌握以太坊核心技术》--14-Dapp示例
Ganache-cli是一个用于以太坊开发和测试的命令行工具。它提供了一个本地的以太坊区块链环境,可以用于开发智能合约、部署合约和进行交易等操作。使用ganache-cli,开发者可以在本地快速搭建一个私有的以太坊网络,而无需连接到真实的以太坊网络。它还提供了一些方便的功能,如创建模拟账户、生成测试数据、调整区块链状态等,有助于简化以太坊应用程序的开发和测试过程。这要求预先安装 nodeis 和 npm,再用 npm安装 ganache-cli、web3 和 solc0.4.25(当时版本)原创 2024-05-21 17:50:40 · 692 阅读 · 0 评论 -
《深入掌握以太坊核心技术》--13-Web3.js写以太坊脚本
3.编写转账的js脚本,保存在sendCoin.js文件中。这里可以用solc或者remix来执行。2.将合约转为AbI。原创 2024-05-21 17:50:05 · 231 阅读 · 0 评论 -
《深入掌握以太坊核心技术》--12-Web3.js简介
web3 .js简介web3 模块加载异步回调(callback)回调 Promise 事件(v1.0.0)应用二进制接口(ABI)批处理请求(batch requests)大数处理(big numbers)常用 API基本信息查询网络状态查询Providerweb3 通用工具方法web3.eth账户相关区块相关交易相关交易执行相关发送交易消息调用日志过滤(事件监听)合约相关调用合约函数监听合约事件web3.js是一个JavaScriptAPI库。原创 2024-05-20 18:08:24 · 818 阅读 · 0 评论 -
《深入掌握以太坊核心技术》--11-深入理解Solidity
强制指定的数据位置外部函数的参数(不包括返回参数):calldata;状态变量:storage默认数据位置函数参数(包括返回参数):memory;引用类型的局部变量:storage(要求一个很大存储空间,用来保证不发生哈希碰撞,这也导致无法遍历,mapping就是,同时memory内存分配时就要说明存储大小,而storage不用,故可用mapping)值类型的局部变量:栈(stack)特别要求。原创 2024-05-20 18:08:05 · 1140 阅读 · 2 评论 -
《深入掌握以太坊核心技术》--10-简单代币合约
ERC-20 是以太坊上智能合约的一个通用标准,用于代表可互换的代币。ERC-20 标准定义了一组规则和函数,使得代币合约在以太坊网络上具有一致性和互操作性。这意味着符合 ERC-20 标准的代币可以在相同的钱包、交易所和其他以太坊智能合约中使用,而不需要针对每种代币编写特定的代码,即任何一个代币都完全等同于任何其他代币;事件(Event)是一种特殊的 Solidity 语言结构,用于在智能合约执行期间发出通知。事件允许智能合约与外部应用程序进行通信,以便它们可以监视合约中的活动并采取适当的行动。原创 2024-05-19 19:15:45 · 800 阅读 · 0 评论 -
《深入掌握以太坊核心技术》--09-Solidity简介
Solidity简介语言特性Solidity源码和智能合约Remix上开发测试soliditySolidity是一门面向合约的、为实现智能合约而创建的高级编程语言。设计的目的是能在以太坊虚拟机(EVM)上运行。Solidity是静态类型语言,支持继承、库和复杂的用户定义类型。内含的类型除了常见编程语言的标准类型,还包括address等以太坊独有的类型,Solidity源码文件通常以.sol作为扩展名。可以在Remix上进行Solidity编程。原创 2024-05-19 19:15:22 · 897 阅读 · 0 评论 -
《深入掌握以太坊核心技术》--08-以太坊虚拟机
具体来说,存储在节点数据库中的位置可以被认为是智能合约的存储空间,它被组织成一个持久化的键值对数据库。当智能合约的状态发生变化时(例如,合约的函数被调用导致状态变化),节点会更新其数据库中相应智能合约地址的存储数据。这个更新的过程包括写入新的键值对到数据库中,并在区块链上记录这次状态变化的交易。节点执行存储操作时会检查交易中所包含的 gas 是否足够支付存储操作的费用,如果不够,则会拒绝执行这个交易。节点的数据库包含了整个区块链的状态,其中就包括了智能合约的状态信息。原创 2024-05-18 19:10:16 · 980 阅读 · 0 评论 -
《深入掌握以太坊核心技术》--06-以太坊账户
一旦合约运行结束,并且由它发送的消息触发的所有子执行(sub-execution)结束,EVM就会中止运行,直到下次交易被唤醒。消息是不会被序列化的虚拟对象,只存在于以太坊执行环境(EVM)中,交易会被打包,消息调用不一定会被打包记录。可以读/写自己的内部存储(32字节key-value的数据库)合约可以向其它合约发送“消息”(合约与合约之间的通信方式)签名的数据包,由EOA发送到另一个账户。可向其他合约发送消息,依次触发执行。原创 2024-05-17 11:16:00 · 1753 阅读 · 1 评论 -
《深入掌握以太坊核心技术》--04-以太坊客户端简介
以太坊客户端目前常用的以太坊客户端占比基于以太坊规范的网络全节点和轻节点以太坊全节点远程客户端和轻节点全节点优缺点公共测试网络节点的优缺点本地私链优缺点。原创 2024-05-17 11:14:58 · 921 阅读 · 0 评论 -
《深入掌握以太坊核心技术》--03-智能合约入门
一旦智能合约被成功部署并确认状态(也就是被矿工打包并发布到区块链上),Remix 控制台会显示与该部署相关的重要信息,包括区块地址和交易地址。根据前一个教程领取到的测试币,用Remix连接到Metamask,将合约部署到链上。水龙头合约,可以将合约中的币,提到账户上。可以在Remix中看到合约的余额。也可在区块链浏览器看到相关信息。原创 2024-05-16 10:23:49 · 170 阅读 · 0 评论 -
《深入掌握以太坊核心技术》--02初识以太坊
它提供了丰富的功能,使开发人员能够轻松地编写、调试和部署智能合约,同时开发人员可以使用 Remix 直接将他们的智能合约部署到以太坊网络上,并与已部署的合约进行交互。3.如果 MetaMask 或计算机出现问题无法打开钱包,可以使用这12个单词组成的助记词在任何兼容的钱包中进行恢复。硬件钱包:这些钱包是专门设计的硬件设备,用于存储用户的私钥,并提供离线的安全存储和交易签名功能。网页钱包:这些钱包是基于网页的在线钱包,用户可以通过浏览器访问并管理加密资产。视频上有些废弃掉的,以后有遇到新的,再记录下来吧。原创 2024-05-16 10:22:37 · 1083 阅读 · 0 评论 -
《深入掌握以太坊核心技术》--01以太坊简介
区块链(公链)发展以太坊核心特性发展阶段特点组成部分重要概念货币以太坊和图灵完备去中心化应用代币(Token)名词解释。原创 2024-05-15 17:56:39 · 1027 阅读 · 0 评论