1、应用执行环境结构:
p2p层——共识层——消息路由层——执行层
开发者将应用部署(编译为WebAssembly)后,在执行层容器中运行。
开发时,可以在本地运行。部署到主网时,程序在互联网计算机上运行。
2、应用运行机制:源代码编译为WebAssembly模块,部署到互联网计算机(IC)的容器(Canister)中。容器包括程序和状态、用户交互记录。
用户通过入口点接口调用程序,包括查询调用和更新调用。
查询调用:查询状态变量值;同步得到结果;可以只对单个节点查询状态(确认性问题);暂时不能间接调用(穿透调用)。
更新调用:更新状态变量值;异步得到结果;可以间接调用。
3、如何开发应用:
应用开发者要平衡安全性和性能效率。
使用编程语言Motoko:
?类型安全、模式匹配
?使用actor对象:actor间分离状态、异步处理;每个项目可以包含多个Canister,但是每个Canister只能包含一个actor
?使用async和await语法来处理异步
?自动支持消息序列化和反序列化
?无需外部数据库和存储盘
?支持大整数运算,溢出保护
?自动检查所有变量类型错误
?支持函数抽象、自定义类型、自定义actor
4、身份认证用户调用canister:私钥用于签名,公钥和签名消息发送给容器。一个用户有一个标识,可以有多个公私钥对。canister调用canister:canister已经在IC上有注册的身份标识。
5、资源使用:
CPU用于执行
带宽用于信息传递
内存用于永久数据存储
canister包含一个账户(资产为cycles)用于支付以上这些成本。设置消耗限制可以防止恶意代码消耗成本
6、安装
sh-ci"$(curl-fsSL