q363657448的个人博客分享 http://blog.sciencenet.cn/u/q363657448

博文

solidity学习文档

已有 533 次阅读 2019-7-7 10:01 |系统分类:科研笔记

1、address public minter中的public关键字使变量能从合约外部访问(如果没有这个关键字,其他的合约没有办法访问这个变量)。 

2、Evevt 事件让轻客户端能高效的对变化做出反应。事件是与以太坊虚拟机日志工具的方便接口。

3、区块链是一个全局共享的、事务性的数据库。这意味着参与这个网络的每一个人都可以读取其中的记录。如果你想修改这个数据库中的东西,就必须创建一个事务,并得到其他所有人的确认。事务这个词意味着你要做的修改(假如你想同时修改两个值)只能被完完全全的实施或者一点都没有进行。 

4、以太坊中有两类账户,他们共用同一个地址空间。外部账户,该类账户被公钥-私钥对控制。合约账户(智能合约地址),该类账户被存储在账户中的代码控制。 

5、修饰器(Modifier)是一个简便的途径用来验证函数输入的有效性。 

6、内部函数(Internal)-意味着仅仅只有合约(或者从其继承的合约)可以调用。 

7、日志:是一种特殊的可索引的数据结构,其存储的数据可以一路映射直到区块层级。 

8、状态变量是永久存储在合约存储中的值。 

9、结构是可以将几个变量分组的自定义类型。 

10、Enum 枚举可以用来创建一定数量的值的自定义类型。它可以显式地与整数进行互相转换,但不能进行隐式转换。显式的转换会在运行时检查数值范围,如果不匹配,将会引起异常。枚举类型应至少有一名成员。 11、Address(地址):保存20个字节的值(一个以太坊地址的大小)。地址类型也有成员,并作为所有合约的base。 

12、Call、delegatecall和callcode都是非常低级的函数,只能作为最后的手段,因为它们会破坏solidity的类型安全。 

13、函数类型包括内部函数和外部函数。内部函数只能在当前合约内进行内部调用,因为他们不能在当前合约的上下文之外执行。外部函数由一个地址和一个函数签名组成,他们可以通过外部函数调用传递并返回。 

14、数据存储位置:每一个复杂类型,即数组Array和结构体struct,有一个额外的注解-“数据存储位置”。1、函数参数,包括返回值的默认数据存储位置是memory  2、局部变量的默认数据存储位置是storage  3、状态变量默认数据存储位置强制为storage。 

15、Delete删除 将对应类型的初始值赋值给a 即相当于a=0; 

16、错误处理 1、assert(bool condition) 如果条件不满足则抛出异常-用于内部错误 2、require(bool condition) 如果条件不满足则抛出异常-用于输入或外部组件中的错误。 3、revert() 中止执行并恢复状态更改。 

17、在一个私有的blockchain里,你可能在使用sha256, ripemd160 或 ecrecover 的时候碰到”Out-of-Gas”的问题 。原因在于这个仅仅是预编译的合约,合约要在他们接到的第一个消息以后才真正的生成(虽然他们的合约代码是硬编码的)。对于没有真正生成的合约的消息是非常昂贵的,这时就会碰到“Out-of-Gas”的问题。 这一问题的解决方法是事先把1wei 发送到各个你当前使用的各个合约上。这不是官方或测试网的问题。 

18、Returns关键字后面可以增加相关的公式来表达输出的值。例如returns(uint sum, uint product){sum = a + b; product = a * b;}。 

19、Solidity不能像C和JavaScrip那样 ,从非布尔类型类型到布尔类型的转换, 所以if (1){…}在Solidity中并不合法。 

20、两种方法可以触发异常1、revert函数可用于标记错误并回滚当前的调用。2、throw关键字也可用作revert()的替代方法。 

21、函数重载:合约可以有多个同名但不同输入参数的函数。 使用‘is’继承另一个合约 例如:contract motral is owned{}。

。。。

后续再补充



http://blog.sciencenet.cn/blog-3410412-1188428.html

上一篇:ubuntn实现区块链DAPP
下一篇:新学期第一part

1 李毅伟

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

全部作者的精选博文

Archiver|手机版|科学网 ( 京ICP备14006957 )

GMT+8, 2019-11-19 15:10

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部