合约开发的基本结构剖析及前置知识梳理

前置知识点

上下文变量初步

  • 合约函数的背后是transaction,上下文变量访问的是transaction中的信息
  • 两个上下文变量:tx和msg
    在这里插入图片描述

ERC20

  • 规范
  • 代码实现
  • Metamask测试

ganache-cli的安装

安装

npm install -g ganache-cli

启动

ganache-cli

如果出现以下这种错误提示,这是因为Node.js 和 OpenSSL 之间的兼容性问题引起的。这个问题在 Node.js 17 和更高版本中很常见,因为这些版本更改了对 OpenSSL 的处理方式。
在这里插入图片描述

解决方式:
  • 降级 Node.js 版本,比如16
  • 设置环境变量(可以设置 NODE_OPTIONS 环境变量,以使 Node.js 使用旧版 OpenSSL 接口)
  • 在执行命令时临时设置,如下:
    NODE_OPTIONS=--openssl-legacy-provider ganache-cli
    

正常启动后会开发链会生成一些测试帐号,如下图,端口号为8545,另:网络ID是1337
在这里插入图片描述

Ganache 的 1337 网络 ID(一些有趣的知识点)

Ganache 是一个用于以太坊开发的个人区块链,它允许开发者在本地快速部署和测试智能合约。在默认配置下,Ganache 使用本地 HTTP 服务器来提供 JSON-RPC 接口,通常运行在 http://localhost:8545 上。
Ganache 的 1337 网络 ID

网络 ID(Network ID)是以太坊网络的唯一标识符。默认情况下,Ganache 使用 1337 作为它的网络 ID。这个 ID 用于区分不同的以太坊网络,例如主网、测试网(Ropsten、Kovan、Rinkeby 等)和本地开发网络。

  • 主网 的网络 ID 是 1
  • Ropsten 的网络 ID 是 3
  • Kovan 的网络 ID 是 42
  • Rinkeby 的网络 ID 是 4
为什么选择 1337?

1337 是一个被开发者社区广泛接受的数字,来源于“leet”或“1337 speak”,这是一种互联网文化中的黑客语言,意味着“elite”或“精英”。选择 1337 作为默认的网络 ID 主要是出于以下原因:

  • 避免冲突:使用一个非常高且不常用的数字,可以避免与其他公共网络 ID 的冲突。
  • 便于识别:开发者可以轻松识别和记住这个 ID,因为它具有一定的文化意义。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/639023.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

本特利330103-03-09-10-02-00 PLC模块技术分析与应用探讨

本特利330103-03-09-10-02-00 PLC模块技术分析与应用探讨 一、引言 在工业自动化领域中,可编程逻辑控制器(PLC)作为核心控制设备,其性能的稳定性和可靠性直接关系到整个生产线的运行效率。本特利(Bentley)…

求第 N 个泰波那契数 | 动态规划

1.第 N 个泰波那契数 题目连接:1137. 第 N 个泰波那契数 泰波那契序列 Tn 定义如下: T0 0, T1 1, T2 1, 且在 n > 0 的条件下 Tn3 Tn Tn1 Tn2给你整数 n,请返回第 n 个泰波那契数 Tn 的值。 2.什么是动态规划 在解决这道问题之前…

获取日期区间的所有日期

借助moment.js 转换指定格式,首先安装npm install moment --save methods:{enumerateDaysBetweenDates(startDate, endDate) { // 假定你已经保证了startDate 小于endDate,且二者不相等let daysList [];let SDate this.$moment(startDate);let EDate …

计算机系统基础 8 循环程序

概要 两种实现方法——分支指令实现和专门的循环语句实现以及有关循环的优化。 分支指令实现 倒计数 …… MOV ECX,循环次数 LOOPA:…… …… DEC ECX JNE LOOPA 正计数 …… MOV ECX,0 LOOPA: …… INC ECX CMP …

U-Boot menu菜单分析

文章目录 前言目标环境背景U-Boot如何自动调起菜单U-Boot添加自定义命令实践 前言 在某个厂家的开发板中,在进入它的U-Boot后,会自动弹出一个菜单页面,输入对应的选项就会执行对应的功能。如SD卡镜像更新、显示设置等: 目标 本…

ESP8266实现获取天气情况

利用太极创客提供的ESP8266 心知天气库获取天气情况并显示 心知天气库地址: ESP8266-心知天气: 本库主要功能为使用ESP8266物联网开发板通过心知天气 API 获取天气等信息。 clone到本地: git clone https://gitee.com/taijichuangke/ESP8266-Seniverse.git 安装该…

go语言的一些常见踩坑问题

开始之前,介绍一下​最近很火的开源技术,低代码。 作为一种软件开发技术逐渐进入了人们的视角里,它利用自身独特的优势占领市场一角——让使用者可以通过可视化的方式,以更少的编码,更快速地构建和交付应用软件&#…

ArkUI-X开发指南:【SDK配置和构建说明】

ArkUI-X SDK配置和构建说明 ArkUI-X SDK是ArkUI-X开源项目的编译产物,可将ArkUI-X SDK集成到现有Android和iOS应用工程中,使开发者基于一套ArkTS主代码,就可以构建支持多平台的精美、高性能应用。SDK内容包含ArkUI跨平台运行时,组…

【高频】从输入URL到页面展示到底发生了什么?

一、相关衍生面试问题: 浏览器输入美团网站,从回车到浏览器展示经历了哪些过程 ? http输入网页之后的流程? 百度搜索页面,从点开搜索框,到显示搜索页面经历了什么? 二、探究各个过程&#x…

[Algorithm][回溯][记忆化搜索][最长递增子序列][猜数字大小Ⅱ][矩阵中的最长递增路径]详细讲解

目录 1.最长递增子序列1.题目链接2.算法原理详解3.代码实现 2.猜数字大小 II1.题目链接2.算法原理详解3.代码实现 3.矩阵中的最长递增路径1.题目链接2.算法原理详解3.代码实现 1.最长递增子序列 1.题目链接 最长递增子序列 2.算法原理详解 题目解析:从每个位置&am…

【BUG】Edge|联想电脑 Bing 搜索报错“Ref A: 乱码、 Ref B:乱码、Ref C: 日期” 的解决办法

文章目录 省流版前言解决办法 详细解释版前言问题描述与排查过程解决办法与总结 省流版 我原以为我解决了,才发的博客,晚上用了一下其他设备发现还是会出现这个问题… 这篇博客并未解决该问题,如果评论里有人解决了这个问题不胜感激&#x…

博客说明 5/12~5/24【个人】

博客说明 5/12~5/24【个人】 前言版权博客说明 5/12~5/24【个人】对比最后 前言 2024-5-24 13:39:23 对我在2024年5月12日到5月24日发布的博客做一下简要的说明 以下内容源自《【个人】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作…

Undet for SketchUp 2023.3 点云建模软件 支持支持草图大师sketchup2021-2022-2023

1.Undet for sketchup 2023.3支持草图大师sketchup2021-2022-2023。支持机载雷达扫描、车载扫描还是地面扫描,对AEC行业用户来说,真正需要的是如何将这些数据快速处理为三维模型,这样才能将这些信息延展到BIM领域发挥效用。因此面对这些海量的…

【真实项目中收获的提升】- 前后端联调

场景 小型项目前后端联调,不需要部署到sit或uat环境下。 解决方法 后端部署frp服务 下载frp软件 配置frpc.ini文件,先把文件设置可编辑(可同时配置多个 例如下面的chz 上面打码的是frp服务器地址) 然后起start.bat 其实就是执行frpc -c frpc.ini命令…

4、PHP的xml注入漏洞(xxe)

青少年ctf&#xff1a;PHP的XXE 1、打开网页是一个PHP版本页面 2、CTRLf搜索xml&#xff0c;发现2.8.0版本&#xff0c;含有xml漏洞 3、bp抓包 4、使用代码出发bug GET /simplexml_load_string.php HTTP/1.1 补充&#xff1a; <?xml version"1.0" encoding&quo…

DockerNetwork

Docker Network Docker Network 是 Docker 引擎提供的一种功能&#xff0c;用于管理 Docker 容器之间以及容器与外部网络之间的网络通信。它允许用户定义和配置容器的网络环境&#xff0c;以便容器之间可以相互通信&#xff0c;并与外部网络进行连接。 Docker Network 提供了以…

docker容器安装mysql

linux: centOS-7 hadoop: 3.3.6 前置章节&#xff1a; (图文并茂)基于CentOS-7搭建hadoop3.3.6大数据集群-CSDN博客 可选&#xff1a;zookeeper安装教程-CSDN博客 1.安装docker 1.1 添加docker的repo源 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/…

猫狗电子玩具底层方案开发

物在现代年轻人中的地位已经超越了简单的“宠物”定义&#xff0c;它们已经成为了家庭的一部分&#xff0c;是人们生活中不可或缺的伴侣和朋友。 因此营运而生了很多宠物用品&#xff0c;比如喂食器、电子逗猫棒、饮水机、说话按钮等等宠物电子玩具周边。宠物玩具在宠物生活中…

Python-3.12.0文档解读-内置函数hash()详细说明+记忆策略+常用场景+巧妙用法+综合技巧

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 详细说明 功能描述 参数 返回值 特性 使用示例 注意事项 记忆策略 常用场景 …

【数学建模】储药柜的设计

2014高教社杯全国大学生数学建模竞赛D题目 题目描述 储药柜的结构类似于书橱&#xff0c;通常由若干个横向隔板和竖向隔板将储药柜分割成若干个储药槽(如图1所示)。为保证药品分拣的准确率&#xff0c;防止发药错误&#xff0c;一个储药槽内只能摆放同一种药品。药品在储药槽…