【Web3 开发系列教程—创建你的第一个智能合约(5)】窥探智能合约的结构

定义以太坊智能合约的许多关键概念不同于 web2 时期。

类型

在 Solidity 中,合约类型是一种结构,它围绕一个目的组织一组相关功能。

地址类型是相当于 20 个字节的以太坊地址,以前缀 0x 开头的十六进制形式表示。

作为开发人员,你会熟悉大多数类型 - 包括布尔值、整数、定点数、字节数组和文字。

数据存储

引用类型在 Solidity 中数据有一个额外的属性:存储位置,该属性的可选项为 memory 和 storage 以及 calldata。其中,

  • memory:存储在内存中,即分配、即使用,越过作用域则不可访问,等待被回收。
  • storage:永久存储在以太坊区块链中,更具体地说存储在存储 Merkle Patricia 树中,形成帐户状态信息的一部分。一旦使用这个类型,数据将永远存在。
  • calldata:存储函数参数,它是只读的,不会永久存储的一个数据位置(不会持久化到区块链)。外部函数的参数被强制指定为 calldata 时,效果与 memory 类似。

函

区块链2——Solidity智能合约开发 区块链:Solidity智能合约开发:合约的结构和语法、数据类型和变量、控制结构和函数、事件和日志、异常处理、与外部合约的交互 阅读详情

相关推荐

web3开发DApp项目技术入门教程(2022年最新)

2022 年最新 web3 开发入门教程,一文带你快速入门 web3.0时代。 内容包括: 1. 智能合约创建和部署 2. Solidity语言入门 3. hardhat框架使用及本地环境搭建

captxb的博客 1万+

11. 建立你的第一个Web3项目

通过本章节的实践,你已经了解了如何搭建Web3开发环境,编写和部署智能合约,以及开发一个与智能合约交互的dApp。这是Web3开发的基础技能,未来你可以在此基础上开发更复杂的去中心化应用。

sise_2022的博客 3726

扫盲系列--Web3智能合约+Solidity简介

这几天web3智能合约这个概念,频繁映入我的眼帘。web3.0这个概念我听说过,核心特征是去中心化、开放性、隐私保护和数据所有权回归个人。Web 1.0是信息浏览时代,Web 2.0是用户参与和社交网络时代,Web 3.0是去中心化与智能化时代。在Web3.0这一新的互联网架构下,用户不再仅仅是内容的消费者,更是自己数字身份和数据的拥有者。Web 3.0旨在构建一个更加透明、安全且高效的信息网络。我对Web3.0的了解是一些比较宽泛的东西,这次想比较详细的了解一下web3中的智能合约。智能合约。

CTZL123456的博客 2305

web3-python:使用python调用智能合约交互

安装 python、pycharm这些环境和开发工具大家自行安装即可,网上一搜都是教程,比我写的好很多,这部分内容不再赘述。 web3py文档:https://web3py.readthedocs.io/en/stable/index.html web3py应该是python上跟智能合约交互最好用的包了,首先我们安装一下。 直接使用:pip install web3 进行安装。 教程 查询余额 我们新建一个py文件,开始编码吧~ from web3 import Web3, HTTPProvider ad

Mumu的博客 2万+

web3j教程:java使用web3j开发以太坊智能合约交易

1.以太币从一方交易到另一方 2.创建一个智能合约 3.与智能合约交易 为了进行这些交易,必须有以太币(以太坊区块链的代币)存在于交易发生的以太坊账户中。这是为了支付gas成本,这是为支付参与交易的以太坊客户端的交易执行成本,支付了这个成本就能将结果提交到以太坊区块链上。获得以太币的说明下文会说到。 此外,我们还可以查询智能合约的状态。 如何获得以太币Ether 要想获得以太币Ether你...

weixin_33959449的博客 2836

【Web3 开发系列教程—创建你的第一个智能合约(7)】智能合约存在的安全挑战

与更传统的编程语言的大多数案例不同,Solidity 合约倾向于转移大量价值作为其核心功能之一,因此容易受到攻击者的各种高风险攻击,这些攻击者试图从这些不可变的参与者身上榨取资金。因此,强烈建议开发人员在向主网启动智能合约之前进行审计或聘请审计机构。因为一旦发布,就很难追溯修复安全漏洞! 潜在漏洞的类型以及执行这些攻击的方式本身就是一个完整的过程。 下面我会快速概述一下可能存在的主要漏洞,以便你了解需要注意的事项:什么是重入攻击:这种类型的攻击非常危险,可以让易受攻击的智能合约耗尽所有的以太币,并且非常容易

前端进阶之路 | 中大厂、外企、国企内推 | 面试培训 | 简历修改 1129

【Web3 开发系列教程—创建你的第一个智能合约(2)】部署第一个智能合约

如果你是区块链开发的新手并且不知道从哪里开始,或者你只是想了解如何部署智能合约并与之交互,那么本指南适合你。 我们将介绍使用虚拟钱包 (Metamask)、Solidity、Hardhat 和 Alchemy 在 Goerli 测试网络上创建和部署一个简单的智能合约(如果你还不明白其中的任何含义,请不要担心,我们将 解释一下!)。有很多方法可以向以太坊链发出请求。 为简单起见,我们将在 Alchemy 上使用免费帐户(如果你还没有 Alchemy 帐户,请点击在此处免费注册),这是一个区块链开发平台和 AP

前端进阶之路 | 中大厂、外企、国企内推 | 面试培训 | 简历修改 5938

【Web3 开发系列教程—创建你的第一个智能合约(1)】什么是智能合约

什么是智能合约? 以太坊在 2013 年的核心创新是允许开发人员编写称为智能合约的小代码块,这些代码可以部署到以太坊网络,独立于其创建者运行。 在以太坊中,智能合约是用 Solidity 编写的,这是一种设计用于在以太坊虚拟机上运行的高级编程语言。智能合约也成为了区块链开发领域主要的研究方向之一。 智能合约是定义一组规则或“合约”的程序,当用户在区块链上调用时,它会自动执行编码规则。 特别地,一旦部署了智能合约,它就不能被修改或控制。因此,智能合约是运行金融应用程序的理想选择,它们可以作为独立参与者以有保证

前端进阶之路 | 中大厂、外企、国企内推 | 面试培训 | 简历修改 2821

Java Web3J :使用web3j调用自己的智能合约的方法(教程)

web3j是一个轻量级、高度模块化、响应式、类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成。可以通过它进行以太坊区块链的开发,而无需为你的应用平台编写集成代码。web3j调用智能合约是web3j使用的关键,当前区块链的核心原理其实很简单:这是智能合约优秀的框架,经过了无数安全的效验,目前绝大多数项目引用此相关依赖。有些函数是固定写法例如claim,deposit,approve等等。

鄙人kunzhi96,感恩遇见! 1万+

【Web3 开发系列教程—创建你的第一个智能合约(4)】与智能合约交互

与智能合约之间的交互

前端进阶之路 | 中大厂、外企、国企内推 | 面试培训 | 简历修改 759

【Web3 开发系列教程—创建你的第一个智能合约(8)】将你的智能合约与前端集成

这是本教程系列的最后一部分。这部分,你会将你的的 Hello World 智能合约连接到前端项目并与之交互来创建一个全栈去中心化的应用程序。你会学到以下知识:对于这个 应用,我们将使用 React 作为我们的前端框架。但是,重要的是要注意,我们不会花太多时间讲解它的基础,因为我们将主要专注于将 Web3 功能引入我们的项目。当然,作为先决条件,你应该对 React 有初步的了解——知道组件、props、useState/useEffect 和基本的函数调用是如何工作的。 如果你以前从未听说......

前端进阶之路 | 中大厂、外企、国企内推 | 面试培训 | 简历修改 645

【Web3 开发系列教程—创建你的第一个智能合约(3)】什么是 Gas,它是如何使用的?

以太坊中的 Gas 是指在区块链网络上**执行智能合约或交易所需的额外费用。**为什么会存在这种情况? 好吧,在运行智能合约时有几个主要限制:什么是图灵完备性? 实际上,只要有足够的时间和资源,图灵完备的编程语言就能够解决或表示任何计算问题,无论多么复杂。 特别是,这有几个含义:例如,普通计算器不是图灵完备的,因为它只允许几种类型的计算。 但是,计算机或科学计算器是图灵完备的,因为可以在其上执行任何类型的程序。由于智能合约程序可以永远运行,gas 已成为以太坊中管理区块链程序影响的实用方式! 在区块链上进行

前端进阶之路 | 中大厂、外企、国企内推 | 面试培训 | 简历修改 1329

web3:智能合约浏览器版本的 IDE - remix 使用教程

Remix 是一个开源的 Solidity 智能合约开发环境,是一款浏览器版本的 IDE,提供基本的编译、部署至本地或测试网络、执行合约等功能。Solidity 是 以太坊Ethereum 官方设计和支持的开发语言,专门用于编写智能合约。我们在上面编辑测试我们的智能合约,尤其对于新手来说是一个非常棒的编辑工具。因为官方文档内容比较多,并且是英文的,很多内容我们还不需要了解,所以这里只介绍一个常用的流程,编辑->编译->部署->测试。

鄙人kunzhi96,感恩遇见! 5390

【Web3 系列开发教程——创建你的第一个 NFT(3)】开始创建 NFT

本文将引导你使用以太坊和星际文件系统(IPFS)编写和部署不可替代()代币智能合约。星际文件系统IPFS是一个旨在。它是一种内容可寻址的对等超媒体分发协议。在IPFS网络中的节点构成一个分布式文件系统。它是一个开放源代码项目,自2014年开始由协议实验室在开源社区的帮助下发展。其最初由JuanBenet设计。ERC721是针对不可置换Token的智能合约标准接口,(non-fungiletokens)不可置换Token简称NFTs。在Goerli测试网络上创建和部署。...

前端进阶之路 | 中大厂、外企、国企内推 | 面试培训 | 简历修改 2073

EZ-USB-FX3 slavefifo调试

最近使用fx3-usb-3.0调试slave fifo的传输,期间遇到许多难以理解的问题。在这里分享给大家,希望可以少走一些弯路,我自己是这样走过来的。 1,首先去官网下载原始的参考设计,并安装所提供的SDK软件:FX3SDKSetup_1.3.4.exe 2,接着把参考设计文档AN65974阅读一遍,分别创建新的SDK工程和FPGA工程。如果使用的原厂的开发板,那么可以按照文档提示,可以很顺畅的跑完整过测试。否则需要匹配自己的硬件,做针对性的更改和移植,而我走的是后一条路,于是开始了漫长的调试之路。.

YDY5659150的专栏 3631

【免费】最新区块链钱包和私钥的助记词碰撞器,bybit使用python开发

【免费】最新助记词钱包碰撞器,全链全网络,一周左右就有,稳定高效。

weixin_48529185的博客 1万+

无需UMAT:基于Abaqus内置模型实现形状记忆聚合物结构的热-力耦合仿真

本文详细介绍了如何利用Abaqus内置模型实现形状记忆聚合物(SMP)的热-力耦合仿真,无需编写复杂的UMAT子程序。通过广义Maxwell模型和Neo-Hookean模型的组合应用,结合完整的热-力耦合分析流程,帮助工程师高效模拟SMP的形状记忆行为。文章还提供了工程应用案例和常见问题解决方案,为相关领域的研究和设计提供实用指导。

weixin_34005090的博客 117

实测338MB/s!FPGA与CYUSB3014的Slave FIFO模式实战避坑(附完整固件与源码)

本文详细介绍了FPGA与CYUSB3014在Slave FIFO模式下实现338MB/s高速数据传输的实战经验。通过优化硬件设计、固件配置和GPIF II接口设置,解决了USB3.0双向通信中的关键性能瓶颈,并提供了完整的固件与源码参考。

weixin_30570101的博客 458

N32在Keil中J-Link识别失败的排查与修复指南

本文详细解析了在Keil开发环境中,J-Link调试器无法识别N32系列MCU的常见问题。通过分步指导,从检查修改Keil工程配置文件、更新J-Link驱动,到手动添加N32专用设备支持包,系统性地提供了排查与修复方案,帮助开发者快速恢复调试连接,确保开发流程顺畅。

303

ASP.NET Core 6 Web API在IIS上的部署与调试

通过以上步骤和配置,你应该能够成功部署并调试你的ASP.NET Core 6 Web API在IIS上。记住,权限和配置是关键,确保你的环境和应用程序代码都正确设置。希望这篇博客对你部署和解决IIS上的问题有所帮助。

m0_74337424的博客 522

2024阅读AOSP源码的正确打开姿势

在Android系统开发中,阅读AOSP(Android Open Source Project)源码是非常重要的环节。然而,如何构建一个优雅的阅读环境却是一个不容忽视的问题。本文将介绍不同工具和方法下阅读AOSP源码的正确姿势,并对比其优缺点。

虎哥LoveDroid 2707

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: 【Web3 开发系列教程—创建你的第一个智能合约(3)】什么是 Gas,它是如何使用的?
下一篇: 【Web3 开发系列教程—创建你的第一个智能合约(6)】将你的智能合约发布到 Etherscan
蟹蟹蟹风流
蟹蟹蟹风流 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域 领域专家: 前端开发技术领域 领域专家: 前端开发技术领域
博客等级 码龄11年 3万+粉丝 396原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蟹蟹蟹风流

期望和你分享一杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值