智能合约中,ABI 编码是合约直之间数据交互的桥梁,承载了数据以及接口。而函数选择器则为调用的函数的标识,因其只有 4 个字节,故容易出现函数选择器的冲突。在合约升级中,我们有三种方式去实现升级的逻逻辑,并解决函数选择器冲突:https://learnblockchain.cn/shawn_shaw
本文主要关注以太坊智能合约的进阶操作,包括合约的四种调用方式、合约的创建、地址预测、发送 eth 的三种方法、接收 eth 的三种不同方法等内容。通过 solidity 代码配合 foundry 进行测试。适合新手小白学习
本文以简洁的语言,剖析了 EVM 的内存结构以及栈内存、状态变量的内存结构,提到了各种不同数据类型所占用的 slot 大小,以及 gas优化的思路。方便小白进行快速掌握 EVM 和 solidity 的内存结构:https://learnblockchain.cn/shawn_shaw
本文用简洁的语言,通过最少的代码、丰富的示例图,来清晰地呈现Solidity语言的语法特性。帮助你一小时之内熟悉 Solidity 的语法特性,适合初学者学习借鉴。
布隆过滤器是什么布隆过滤器简单来说就是一个固定长度的bit数组,初始化为0,配合多个hash函数可以解决url去重、缓存穿透、重复元素识别等功能。
MPT树结合了PatriciaTrie(压缩前缀树)和Merkle树的特点。 将中间节点的字符串换成哈希值,得到的就是一棵MPT树。 一句话总结就是:MPT树就是一棵带有hash验证功能的压缩前缀树。
⭐️前缀树的结构是什么:是一种有序的多叉树,用于存储字符串,适合前缀匹配查询。每个节点代表一个字符根节点不存储字符路径代表一个字符串的前缀⭐️前缀树的特点适合前缀匹配:快速判断某个字符串是否已有单词的前缀节省存储空间:多个字符串共享前缀支持字典序输出:天然支持排序输出⭐️
🌲什么是默克尔树一种二叉树的变种,称为哈希二叉树。所有节点存储hash值,父节点是对所有子节点的hash。❀默克尔树的特性高效:可以实现不遍历整棵树,验证数据是否在树中。不可篡改:只要有一个节点被篡改,root节点hash就会发生改变。节省存储:不保存真实数据,仅保存数据的h
⭐️1.概述在操作系统中,有多种IO模型,从传统的阻塞IO、到非阻塞IO、再到多路复用IO以及暂未成熟的异步IO。为了解其思想,这里整理了一份这几种IO的模拟流程。代码使用go语言进行模拟。⚠️注意:这里仅使用go语言协程和channel模拟各种IO模型的思想,不涉及IO模型的底层实现,实际
在分布式场景下,日志的收集和检索变得额外困难。本文将利用go的协程实现高吞吐量的分布式日志收集,结合etcd做到配置热更新、利用kafka异步发送日志内容到elasticSearch中。实现日志内容的类实时刷新,方便分布式系统的查看和检索日志内容。log-agent仓库地址log-collec