前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >以太坊基础笔记

以太坊基础笔记

作者头像
六个周
发布2023-03-08 14:41:28
2230
发布2023-03-08 14:41:28
举报
文章被收录于专栏:六个周

这篇文章用来记录在学习以太坊的过程中,一些相关的基本概念和 solidity 语言的相关基础语法等。

以太坊基础

涉及工具

tools
tools

区块链发展简史

EOS是什么

以太坊中的重要概念

concept
concept

以太坊的货币

  • 以太坊 ethereum ,货币为 以太 ether
  • 2014年7/8月 众筹发行大约 7200万以太币(矿前),后经过挖矿产生,每年被限制不超过 7200万的25%,未来产量变化不确定。
  • 以太币供应量查询

以太币单位

wei
wei

Solidity

变量

基本类型

  • int (整型)
  • uint (无符号整型)
  • bool (布尔类型)
  • address (地址类型)
  • string (字符串)
  • byte (字节)

引用类型

  • bytes32 (字节数组)
  • mapping(type => type) (一对一映射)
  • strut 结构体
  • Type[8] 定长数组
  • Type[] 动态数组
  • strut 结构体

一些结构

  • strut 结构体
  • enum (枚举类型)
  • contract 合约
  • function 函数
  • event 事件
  • modifier 修饰符

存储方式

  • storage: 成员变量,永久保存在状态树中(付费)
  • memory:局部变量,临时存储(值传递)
  • calldata: 函数参数变量(临时存储的一个数据位置)

表达式

  • 逻辑运算符: andornot
  • 关系运算符: ===><=
  • 位运算符: &|
  • 条件运算符: ?:
  • 算数运算符: +-*/

控制流程

if, else, while, do, for, switch, continue, break, return

内置对象 block

代码语言:javascript
复制
Block 在调用某个方法的时候,solidity会提供一个block的变量,把当前块的信息返回。 
  • block.coinbase(): 返回挖掘此块的节点地址
  • block.difficulty(): 返回当前区块的难度
  • block.gaslimit(): 返回当前块的最大燃气量
  • block.limit(): 返回当前区块的gas消耗限制
  • block.number(): 返回链上当前块高、编号
  • block.timestamp(): 返回当前区块的时间戳

内置对象 msg

  • msg.sender(): 返回当前调用合约的发送者的地址
  • msg.gas(): 返回燃料的消耗量
  • msg.sig(): 返回数据的前四个字节
  • msg.value: 返回发送消息的数量

内置其他函数

  • account.balance(): 返回地的址余额(以wei为单位)
  • address.transfer(): 在两个账户之间转移ether
  • assert(bool condition,string memory reason):自信某一条件一定成立,用于安全设计,如果不成立,扣光所有gas
  • require(bool condition,string memory reason):温和认定某条件成立,如果不满足,退回剩余的gas
  • revert(string memory reason):终止合约执行,并还原状态变更
  • now(): 返回当前时间的时间戳(秒)
  • 随机数:
代码语言:javascript
复制
random = uint(keccak256(abi.encodePacked(msg.sender,block.difficulty,now)))
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-02-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 以太坊基础
    • 涉及工具
      • 区块链发展简史
        • 以太坊中的重要概念
          • 以太坊的货币
            • 以太币单位
            • Solidity
              • 变量
                • 基本类型
                • 引用类型
              • 一些结构
                • 存储方式
                  • 表达式
                    • 控制流程
                      • 内置对象 block
                        • 内置对象 msg
                          • 内置其他函数
                          相关产品与服务
                          对象存储
                          对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档