(一)初步理解智能合约
区块链基础(一)初步理解智能合约(二)代码结构和合约特性(三)控制结构(四)类型(五)字面量和内置单位、函数(六)应用二进制接口(七)特殊函数(八)合约的高级特性(完) 前言 这是我学习区块链入门时做的笔记(基于 0.8.7 版本),基本涵盖了编写合约所需常用知识,由于做智能合约安全方面的研究需要精通 Solidity 和 以太坊原理,因此做的笔记比较详实。 这些笔记基于阅读英文文档,参考中文文档和 stack overflow 以及相关教程,我根据学习者的接受新知识的顺序,对文章结构做了适当优化。 这篇文章既可以作为新手入门(因为啃英文文档并且搜索信息并不是容易的事情),也可以作为快捷的检索帮助文档(官方文档的翻译某些部分比较难以理解)。建议使用电脑端阅读。 初稿完成时,都还没学 C 语言,只是一知半解的边学边记。在大二上学期的寒假,我重新整理了一遍,修正了部分错误,将拗口的表述转化成习惯表述,补充了文档中缺少的范例,根据经验突出需要强调的注意事项,使得读者可以跟容易的学习。 本文共计接近 7...
区块链基础
区块链基础(一)初步理解智能合约(二)代码结构和合约特性(三)控制结构(四)类型(五)字面量和内置单位、函数(六)应用二进制接口(七)特殊函数(八)合约的高级特性(完) 区块链 1.0(基于比特币的说明) 内容基本来自这个网站: https://learnmeabitcoin.com/ ,本人大一初学时一边啃一遍记录笔记,于是形成了这一篇文章。 指的是一个不可篡改的,分布式,去中心化账本,没有谁是中央登记员,因为大家都是中央登记员,大家的账本写的东西都一模一样,记着大家所有人的资产信息。(这大概是我们对它的基本认知) 区块链记账,会把上一次交易的账页信息(交易序号,记账(交易)时间,交易记录)作为原始信息,hash 之后的值与本次的账页信息结合在一起,就成了一个区块;(这个数据结构类似于链表——简单地说,既能够存储来自上一个节点的数据,也能够连接下一个节点) 继续推导,下一个区块也会包含本次交易的账页信息 hash 值,和下一次交易的账页信息,这样一来,每一个区块都包含着上一次的账页信息,根据 hash...
Linux 基础
Linux 的基本特点 Linux 严格区分大小写 Linux 中所有内容以文件形式保存,包括硬件设备 Linux 不靠扩展名区分文件类型(虽然有部分文件有后缀,但是并不是给电脑看的) Linux 中所有的存储设备都必须在挂载之后才能使用 目录命令 ls(list) -a 显示隐藏文件 -d 显示目录信息 -h 人性化显示文件大小 -i 显示 inode 号(相当于地址) root 模式下才有不同颜色高亮,以后看能不能调。 查看目录的隐藏文件: 12la# 等同于ls -a 查看目录详细信息(常用来看看权限): 1ls -dl 查看文件详细信息(常用来看看权限): 12ll# 等同于 ls -l cd(change directory) ~ home -上次所在目录 . 代指当前目录 … 代指上级目录 mkdir(make directories) -p 一级一级创建新目录 1mkdir -p 目录路径 rmdir(remove empty directories) 一般不用这个。 只能删除空目录 -p 一级一级删除目录 tree(list contents...
C语言基础
C语言基础乘法逆元信息安全算法基础操作系统基础x86汇编基础信息论与编码 变量存储 全局变量与局部变量 全局变量的特点: 程序块之外的算全局变量(常常放在 main 函数之前),但是有先后识别顺序。 全局变量适合给函数直接传参,但是程序运行的时候都占内存,而且每一部分具有依赖性,迁移性差。 大量的全局变量使得牵扯太多,可读性差。 extern 标识符: 标识着这个变量或者函数要在其他的文件中寻找,即在别处定义,此处需要引用,在 gcc 编译中跨文件变量的使用很有用。 extern 外部变量声明(要区分定义和声明),忽视读取先后顺序。 12extern int a,b;//这里不分配内存,是标志着后面会定义,定义的时候分内存。 extern 在局部中声明,只对这一部分的代码块有效。 如果和代码块的局部变量重名,那么这个代码块不影响这个全局变量,按照里面的局部变量处理。 全局变量跨文件引用,默认是不支持的,但是可以在本文件里声明了 extern...