1.智能合约的基础架构模型,自底向上分别为
基础设施层:提供支撑
合约层:包含智能合约的核心代码
运维层:保障合约的稳定运行
智能层:负责智能合约的自动化执行和决策
表现层:通过界面与用户交互
应用层:实现具体业务需求
2.智能合约具有值和状态两个属性,用if-then(判断语句)和what-if语句预置合约触发场景和响应规则。
有变量就要值,值的不同代表不同状态
3.智能合约就是一个程序,有虚拟机环境
4.区块里保存智能合约先前状态,历史的值打包在区块
这个框理解为全节点(矿工)
编写->编译->部署(广播)->EVM
5.根据使用范围,智能合约分为广义智能合约(逻辑,业务上)和狭义智能合约(数字货币交易)
6.根据编程语言或者运行环境,智能合约可以分为脚本型智能合约,图灵完备型智能合约
图灵完备:能完成复杂逻辑,如java,c++,python,js
非图灵完备:html,css
7.智能合约的技术特征:自动执行;去中心化(不需要中介干预);防篡改(由于区块链上的所有数据不可被篡改,部署在区块链上的智能合约代码以及运行产生的数据输出也不可被篡改);可追溯(所有记录在区块里打包,保证了合约的所以链上执行都有迹可循)
8.智能合约是一种部署在区块链上的自动执行程序
9.智能合约按照编程语言分为比特币脚本,以太坊图灵完备型,可验证合约型。
比特币脚本语言:不具有图灵完备性
以太坊图灵完备型语言:具有图灵完备性,常用的集成开发软件有Remix,虚拟机运行
Hyperledger Fabric智能合约语言:属于图灵完备型语言,容器式运行
10.以太坊智能合约生命周期包含:开发,编译,部署,调用,销毁
11.Solidity可以说是区块链2.0的代表语言
12.java类中的变量叫成员变量,智能合约中变量叫状态变量(Gas消耗大)
13.Solidity常量的数据类型是值类型和字符串
如 int constant x=10;使用constant关键字定义一个常量
14.Solidity变量规则:第一个字符必须是字母或者下划线;标识符名字是区分大小写的
15.Solidity修饰符分为可见性修饰符(public,private)和存储位置修饰符(storage,memory,calldata)