火星链 火星链
Ctrl+D收藏火星链

EXT:详解Cairo指令-ODAILY

作者:

时间:1900/1/1 0:00:00

1.指令结构

CairoCPU原生支持的word是一个域元素,而这个域是特征值大于P>2^63。每个指令会占用1到2个word,如果指令后面跟着立即值(="12345678")则该指令占用2个word,并且值存在第二个word里。每个指令的第一个word由以下元素组成:

2.状态转换

状态转换函数代表了一个通用的状态转换单元,而一个计算通常会分解成多个连续执行的指令,因此我们需要:

a.确保指令的内容,以及指令执行前后的状态的有效性

b.确保执行的指令是一个有效的指令

2.1转换逻辑

如果指令执行前后的状态是一致的,那么其状态的更新一定是按照以下逻辑执行:

COSIMO Ventures联合创始人:人工智能和区块链“完美契合”:金色财经报道,COSIMO Ventures联合创始人兼执行合伙人Rob Frasca在CNBC采访中表示,OpenAI首席执行官的加密货币项目Worldcoin推出后,投资者对专注于加密货币和区块链技术的人工智能项目的兴趣直线上升,他认为,人工智能和区块链“完美契合”。

Frasca还表示,传统金融机构申请现货比特币ETF对加密行业和市场将产生深远影响。[2023/7/28 16:03:27]

2.2指令校验

Yuga Labs CGO:“HV-MTL Forge”游戏将兼容移动设备:金色财经报道,Yuga Labs首席游戏官Spencer Tucker在社交媒体发文称:制作一款在视觉上 1:1 呈现 NFT 角色的游戏并不容易,HV-MTL Forge 是一次有意义的实用性交付,这款游戏融入了视觉涉及,游戏角色实现了真正的个性化,而且兼容移动设备。Spencer Tucker随后补充道,玩家将可以使用Warm.xyz授权委托钱包在手机上玩HV-MTL Forge游戏。根据此前消息,Bored Ape Yacht Club(BAYC)宣布将于 6 月 29 日推出新游戏 HV-MTL?Forge,这是一款空间建造游戏,游戏玩家可以搭建或者定制一个专展的特色空间。HV-MTL Forge游戏故事围绕 BAYC 创建者的HV-MTL机器人NFT展开,持有其NFT就可以访问参与。[2023/6/24 21:56:36]

如图1所示,?个指令由以下元素组成:

Hemi:WGF与AI巨头ChatGPT-4达成合作,打造未来社交新生态:据官方消息,WFG发言人founder Hemi(巴基斯坦)在官方社交媒体平台称,去中心化社交平台WGF DeSocial与AI巨头ChatGPT-4共同打造未来社交新生态。WGF DeSocial倡导公平、透明、无审查的价值观,保障用户在安全环境中自由表达观点。结合ChatGPT-4强大的语言理解与生成能力,WGF DeSocial AI处理中心为用户带来丰富、智能的内容推荐与信息筛选,以及个性化的AI对话体验,提升沟通效率,拓宽交流视野,实现智能化社交。WGF DeSocial的去中心化体系与ChatGPT-4协同保护用户隐私,为用户带来高效、愉悦的社交体验。[2023/3/15 13:05:38]

3.指令示例

3.1断言相等

断言相等指令可以用下述语法表示:

<left_handle_op>=<right_handle_op>

它确保了公式两边是相等的,否则程序的执行将会被返回。

马斯克推文配图中含“Floki”,相关Meme Token短时涨近40%:2月15日,马斯克发布系列推文介绍关于“Twitter新CEO”,并配有柴犬图片。由于图片中带有“Floki”字样,相关Meme Token FLOKI短时涨近40%,现报价0.00003123美元。[2023/2/15 12:08:00]

Note2:除法和减法可以分别表示为具有不同操作数顺序的乘法和加法。

assert指令可以被认为是一条赋值指令,其中?边是已知的,另一边是未知的。例如=4可以被认为是断言的值为4,或者根据上下文将赋值为4。

图4给出了断言相等指令的一些示例,以及每个指令对应的标志值:

解释指令=5:

?为assert指令=>opcode=4

?next_ap=ap=>ap_update=00=0

?next_pc=pc+instruction_size=>pc_update=000=0

?op0和op1没有addormul=>res_logic(res)=00=0

The Graph发布2023年路线图,包括将协议迁移至Arbitrum:10月10日消息,据官方公告,去中心化索引协议The Graph发布2023年路线图,2023年的主要更新将包括取消托管服务、推出Firehose和Substreams以及迁移至以太坊二层解决方案Arbitrum。

其中,取消托管服务意味着网络的去中心化以及需要付费使用服务;Firehose旨在将链上数据保存在本地从无需依赖从节点获取数据;Substreams则是旨在通过并行索引模型提高索引速度,并将与Firehose同时使用。[2022/10/10 10:29:39]

?存在立即数=>op1_src(op1)=001=1

?立即数地址指令地址相邻=>off_op1=1

?等式左边=>dst_reg(dst)=1

?等式左边=>off_dst=1

?op0_reg/off_op0=>initalvalue(1/-1)//因为这个指令用不到这些flags,所以填充默认值

3.2条件和非条件跳转

jmp指令允许更改程序计数器pc的值。

Cairo支持相对跳转和绝对跳转-分别用关键字rel和abs表示;jmp指令或许是有条件的,比如当某个内存单元的值不为0时,触发jmp指令。

指令的语法如下所示:

#Unconditionaljumps.

jmpabs<adress>

jmprel<offset>

#Conditionaljumps.

jmprel<offset>if<op>!

图5给出了jmp指令的一些示例,以及每个指令对应的标志值:

解释指令jmprel+:

?为jmp指令=>opcode=0

?next_ap=ap=>ap_update=b00=0

?next_pc=pc+res=>pc_update=b010=2

?res=op0+op1=>res_logic(res)=b01=1

?op1:=>op1_src(op1)=b010=2

?op1:=>off_op1=-7

?op0:=>op0_src(op0)=0

?op0:=>off_op0=1

?dst_reg/off_dst=>initalvalue(1/-1)///因为这个指令用不到这些flags,所以填充默认值

3.3call和ret

call和ret指令允许实现函数堆栈。call指令更新程序计数器(pc)和帧指针(fp)寄存器。程序计数器的更新类似于jmp指令。之前fp的值被写入,以允许ret指令将fp的值重置为调用之前的值;类似地,返回的pc(调用指令后面指令的地址)被写到,以允许ret指令跳回并继续执行调用指令后面的代码的执行。由于写入了两个存储单元,ap向前进了2,fp被设置为新的ap。

指令的语法如下:

callret<adress>

callrel<offset>

ret

图6给出了call和ret指令的一些示例,以及每个指令对应的标志值:

解释指令callabs:

?为call指令=>opcode=0

?next_ap=ap=>ap_update=b00=0

?next_pc=res=>pc_update=b001=1

?res=op1=>res_logic(res)=b00=0

?op1:=>op1_src(op1)=b010=2

?op1:=>off_op1=4

?op0_reg/off_op0=>initalvalue(0/1)///因为这个指令用不到这些flags,所以填充默认值

?dst_reg/off_dst=>initalvalue(0/0)///因为这个指令用不到这些flags,所以填充默认值

3.4高级ap

指令ap+=<op>通过给定的操作数增加ap的值。

图7给出了高级ap指令的一些示,以及每个指令对应的标志:

解释指令ap+=123:

?为advancingap指令=>opcode=0

?next_ap=ap+res=>ap_update=b01=1

?next_pc=pc+instruction_size=>pc_update=b000=0

?res=op1=>res_logic(res)=b00=0

?op1=123=>op1_src(op1)=b001=1

?op1=123=>off_op1=1

?op0_reg/off_op0=>initalvalue(1/-1)///因为这个指令用不到这些flags,所以填充默认值

?dst_reg/off_dst=>initalvalue(1/-1)///因为这个指令用不到这些flags,所以填充默认值

关于我们

Sin7y成立于2021年,由顶尖的区块链开发者组成。我们既是项目孵化器也是区块链技术研究团队,探索EVM、Layer2、跨链、隐私计算、自主支付解决方案等最重要和最前沿的技术。

微信公众号:Sin7Y

GitHub|Twitter|Telegram|Medium|Mirror|HackMD|HackerNoon

标签:RESOFFDSTEXTres币是不是真的BOGDANOFF价格JedStarDEXTF币

以太坊最新价格热门资讯
INE:Bitfinex一周简报(0815-0820)-ODAILY

BitfinexPay如何使加密货币交易变得顺畅和容易?自比特币诞生和加密货币市场发展以来,由于其快速、直接和安全的特性,人们逐渐开始接受加密货币支付.

1900/1/1 0:00:00
CER:CertiK:近一亿美元天价损失,Harmony跨链桥黑客攻击事件分析-ODAILY

北京时间2022年6月23日19:06:46,CertiK审计团队监测到Harmony链和以太坊之间的跨链桥经历了多次恶意攻击.

1900/1/1 0:00:00
TOS:公链赛道烽烟再起Move系新公链崭露头角-ODAILY

自区块链诞生以来,整个行业已经经历了几轮周期轮替。目前拥有最丰富生态、影响力最大的以太坊,由于性能问题和费用问题而饱受诟病,在周期中不断被后起之秀挑战.

1900/1/1 0:00:00
NOM:Nomad被攻击事件分析:黑客点火,多人“趁火打劫”-ODAILY

北京时间8月2日,成都链安链必应-区块链安全态势感知平台舆情监测显示,跨链通讯协议Nomad遭遇攻击,黑客获利约1.5亿美元.

1900/1/1 0:00:00
比特币:2022年七月Qredo路线图更新-ODAILY

随着加密货币寒冬的开始,很少有地方可以安全地存储数字资产——而自我托管比以往任何时候都更加重要.

1900/1/1 0:00:00
ASTAR:超150个参与方入驻的波卡平行链Astar是如何发展生态的,又带来了怎样的启示?-ODAILY

Polkadot生态研究院出品,必属精品开篇词在2021年12月,第一批平行链正式接入波卡,波卡也吹响了生态发展的号角。不过波卡作为Layer0,其生态发展相对特殊.

1900/1/1 0:00:00