- 如何将两个数字相加/相减/相乘/相除/取大/取小
- OP_ADD
- OP_SUB
- OP_MUL
- OP
- 如何取一个数字的负数/绝对值/SHA256
- OP_NEGATE
- OP_ABS
- OP_SHA256
- 如何复制 stack 顶部的元素
- OP_DUP
- 如何终止程序的执行,并返回成功/失败作为执行的最终结果
- 始终失败:OP_RETURN
- 基于条件使交易失败: OP_IF OP_RETURN OP_ENDIF <normal_operations>
-
// 把数字6压入堆栈 OP_PUSHDATA1 06 // 将数字5压入堆栈 OP_PUSHDATA1 05 // 检查前两个元素是否相等,将结果(0或1)压入堆栈 OP_EQUAL // 根据结果选择执行路径:如果前两个元素相等(即堆栈的顶部现在是1),则执行 OP_RETURN。否则继续。 OP_IF OP_RETURN OP_ENDIF // 正常的操作 OP_1
-
- 使交易成功:<some_operations> OP_1
-
// 假设我们的操作是将两个数字相加 // 将数字3压入堆栈 OP_PUSHDATA1 03 // 将数字4压入堆栈 OP_PUSHDATA1 04 // 将堆栈的前两个数字相加 OP_ADD // 将1压入堆栈 OP_1
-
- 如何实现分支判断
- 如果堆栈顶部的元素为非零,执行后面的指令,否则跳过:
OP_IF [instructions] OP_ENDIF
- 如果堆栈顶部的元素为零,执行后面的指令,否则跳过:
OP_NOTIF [instructions] OP_ENDIF
- 例:btcdeb ‘[1 2 3 OP_IF OP_ADD OP_ELSE OP_MUL OP_ENDIF]’
- 如果堆栈顶部的元素为非零,执行后面的指令,否则跳过:
用btcdeb工具学会Bitcoin Script中应当要学会的指令--中山大学软件工程学院专选课区块链原理与技术实验Lab7
猜你喜欢
转载自blog.csdn.net/weixin_64123373/article/details/133863716
今日推荐
周排行