- 浏览: 768047 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
1.常见关键字段
OP_0/OP_FALSE(0):一个字节空串被推到堆栈中
N/A(1-75):下一个操作码字节是要被压入堆栈的数据
OP_PUSHDATA1(76):下一个字节是要被压入堆栈的数据的长度
OP_PUSHDATA2(77):下两个字节是要被压入堆栈的数据的长度
OP_PUSHDATA4(78):下四个字节是要被压入堆栈的数据的长度
OP_1NEGATE(79):数字-1被压入堆栈
OP_1,OP_TRUE(81):数字1被压入堆栈
OP_2-OP_16(82-96):与关键名相对应的数字被压入堆栈
2.脚本的流程控制
OP_NOP(97):无任何操作
OP_IF(99):如果栈顶元素值不为0,则语句将被执行,栈顶元素值将被删除
OP_NOTIFY(100):如果栈顶元素值为0,则语句将被执行,栈顶元素值将被删除
OP_ELSE(103):如果OP_NOP,OP_IF,NO_NOTIFY执行则这些语句不执行,如果OP_NOP_OP_IF,OP_NOTIFY不执行,则这些语句执行
OP_ENDIF(104):结束if/else语言块
OP_VERIFY(105):如果栈顶元素值非真,则标记交易无效.true会被删除,false不会被删除
OP_RETURN(106):标记交易无效
3.脚本的堆栈处理
OP_TOALTSTACK(107):把输入辅堆栈的顶部,从主堆栈删除
OP_FROMALTSTACK(108):把输入压入主堆栈的顶部,从辅堆栈删除
OP_IFDUP(115):如果栈顶元素值不为0,则复制该元素值
OP_DEPTH(116):把堆栈元素个数压入堆栈
OP_DROP(117):删除栈顶元素
OP_DUP(118):复制栈顶元素
OP_NIP(119):删除栈顶的下一个元素
OP_OVER(120):复制栈顶的下一个元素到栈顶
OP_PICK(121):把堆栈的第n个元素复制到栈顶
OP_ROLL(122):把堆栈的第n个元素移动到栈顶
OP_ROT(123):栈顶的三个元素向左翻转
OP_SWAP(124):栈顶的两个元素交换
OP_TUCK(125):把栈顶元素复制并插入到栈顶下一个元素之前
OP_2DROP(109):删除栈顶两个元素
OP_2DUP(110):复制栈顶两个元素
OP_3DUP(111):复制栈顶三个元素
OP_2OVER(112):把栈底的两个元素复制到栈顶
OP_2ROT(113):把第五和第六个元素移动到栈顶
OP_2SWAP(114):以一对元素为单位,交换栈顶的两对元素的位置
4.字符串操作码
OP_CAT(126):连接两个字符串,已禁用
OP_SUBSTR(127):返回字符串的一部分,已禁用
OP_LEFT(128):在一个字符串中保留左边指定长度的子串,已禁用
OP_RIGHT(129):在一个字符串中保留右边指定长度的子串,已禁用
OP_SIZE(130):把栈顶元素的字符串长度压入堆栈(无需弹出元素)
5.位操作码
OP_INVERT(131):所有输入的位取反,已禁用
OP_AND(132):对输入的所有位进行布尔与运算,已禁用
OP_OR(133):对输入的每一位进行布尔或运算,已禁用
OP_XOR(134):对输入的每一位进行布尔异或运算,已禁用
OP_EQUAL(135):如果输入的两个数相等,则返回1,否则返回0
OP_EQUALVERIFY(136):与OP_EQUAL一样,之后运行OP_VERIFY
6.算术逻辑操作码
OP_1ADD(139):输入值加1
OP_1SUB(140):输入值减1
OP_2MUL(141):输入值乘2,已禁用
OP_2DIV(142):输入值除2,已禁用
OP_NEGATE(143):输入值符号取反
OP_ABS(144):输入值符号取正
OP_NOT(145):如果输入值为0或1,则输出1或0;否则输出0
OP_0NOTEQUAL(146):输入值为0输出0;否则输出1
OP_ADD(147):输出a+b
OP_SUB(148):输出a-b
OP_MUL(149):输出a*b,已禁用
OP_DIV(150):输出a/b,已禁用
OP_MOD(151):输出a/b的余数,已禁用
OP_LSHIFT(152):把a向左移动b位,保留符号,已禁用
OP_RSHIFT(153):把a向右移动b位,保留符号,已禁用
OP_BOOLAND(154):如果a和b都不为0,则输出1,否则输出0
OP_BOOLOR(155):如果a或b不为0,则输出1,否则输出0
OP_NUMEQUAL(156):如果a=b,则输出1,否则输出0
OP_NUMEQUALVERIFY(157):与OP_NUMEQUAL一样,之后要运行OP_VERIFY
OP_NUMNOTEQUAL(158):如果a!=b则输出1,否则输出0
OP_LESSTHAN(159):如果a<b则输出1,否则输出0
OP_GREATERTHAN(160):如果a>b则输出1,否则输出0
OP_LESSTHANOREQUAL(161):如果a<=b则输出1,否则输出0
OP_GREATERTHANOREQUAL(162):如果a>=b则输出1,否则输出0
OP_MIN(163):输出a,b中的最小值
OP_MAX(164):输出a,b中的最大值
OP_WITHIN(165):如果x在min和max之间,则输出1,否则输出0
7.脚本的加密码
OP_RIPEMD160(166):输入用RIPEMD-160算法散列
OP_SHA1(167):输入用SHA-1算法散列
OP_SHA256(168):输入用SHA-256算法散列
OP_HASH160(169):输入被散列两次,先用SHA-256,再用RIPEMD-160
OP_HASH256(170):输入用SHA-256算法散列两次
OP_CODESEPARATOR(171):所有签名检查只需要匹配最近一次执行的OP_CODESEPARTOR操作数据的签名即可
OP_CHECKSIG(172):全部交易的输出,输入和脚本都被散列,OP_CHECKSIG使用的签名必须是该HASH值和公钥的有效签名,如果是真则返回1,否则返回0
OP_CHECKSIGVERIFY(173):与OP_CHECKSIG一样,但之后执行OP_VERIFY
OP_CHECKMULTISIG(174):对于每个签名和公钥对,OP_CHECKSIG都会被执行,如果公钥数量比签名多,那么一些公钥/签名对会失败.所有的签名要与公钥匹配.如果所有签名都有效,则输出1,否则返回0.因为存在BUG,因此一个未使用的外部值会从堆栈中删除
OP_CHECKMULTISIGVERIFY(175):与OP_CHECKMULTISIG一样,但是之后运行OP_VERIFY
8.脚本中的伪关键字
OP_PUBKEYHASH(253):表示公钥用OP_HASH160操作码散列
OP_PUBKEY(254):表示与OP_CHECKSIG兼容的一个公钥
OP_INVALIDOPCODE(255):匹配任何未指定的操作码
9.保留关键字
OP_RESERVED(80):交易无效,除非发生在未执行的OP_IF分支
OP_VER(98):交易无效,除非发生在未执行的OP_IF分支
OP_VERIF(101):交易无效,除非发生在未执行的OP_IF分支
OP_VERNOTIFY(102):交易无效,除非发生在未执行的OP_IF分支
OP_RESERVED1(137):交易无效,除非发生在未执行的OP_IF分支
OP_RESERVED2(138):交易无效,除非发生在未执行的OP_IF分支
OP_NOP1-OP_NOP10(176-185):这些关键字被忽略
OP_0/OP_FALSE(0):一个字节空串被推到堆栈中
N/A(1-75):下一个操作码字节是要被压入堆栈的数据
OP_PUSHDATA1(76):下一个字节是要被压入堆栈的数据的长度
OP_PUSHDATA2(77):下两个字节是要被压入堆栈的数据的长度
OP_PUSHDATA4(78):下四个字节是要被压入堆栈的数据的长度
OP_1NEGATE(79):数字-1被压入堆栈
OP_1,OP_TRUE(81):数字1被压入堆栈
OP_2-OP_16(82-96):与关键名相对应的数字被压入堆栈
2.脚本的流程控制
OP_NOP(97):无任何操作
OP_IF(99):如果栈顶元素值不为0,则语句将被执行,栈顶元素值将被删除
OP_NOTIFY(100):如果栈顶元素值为0,则语句将被执行,栈顶元素值将被删除
OP_ELSE(103):如果OP_NOP,OP_IF,NO_NOTIFY执行则这些语句不执行,如果OP_NOP_OP_IF,OP_NOTIFY不执行,则这些语句执行
OP_ENDIF(104):结束if/else语言块
OP_VERIFY(105):如果栈顶元素值非真,则标记交易无效.true会被删除,false不会被删除
OP_RETURN(106):标记交易无效
3.脚本的堆栈处理
OP_TOALTSTACK(107):把输入辅堆栈的顶部,从主堆栈删除
OP_FROMALTSTACK(108):把输入压入主堆栈的顶部,从辅堆栈删除
OP_IFDUP(115):如果栈顶元素值不为0,则复制该元素值
OP_DEPTH(116):把堆栈元素个数压入堆栈
OP_DROP(117):删除栈顶元素
OP_DUP(118):复制栈顶元素
OP_NIP(119):删除栈顶的下一个元素
OP_OVER(120):复制栈顶的下一个元素到栈顶
OP_PICK(121):把堆栈的第n个元素复制到栈顶
OP_ROLL(122):把堆栈的第n个元素移动到栈顶
OP_ROT(123):栈顶的三个元素向左翻转
OP_SWAP(124):栈顶的两个元素交换
OP_TUCK(125):把栈顶元素复制并插入到栈顶下一个元素之前
OP_2DROP(109):删除栈顶两个元素
OP_2DUP(110):复制栈顶两个元素
OP_3DUP(111):复制栈顶三个元素
OP_2OVER(112):把栈底的两个元素复制到栈顶
OP_2ROT(113):把第五和第六个元素移动到栈顶
OP_2SWAP(114):以一对元素为单位,交换栈顶的两对元素的位置
4.字符串操作码
OP_CAT(126):连接两个字符串,已禁用
OP_SUBSTR(127):返回字符串的一部分,已禁用
OP_LEFT(128):在一个字符串中保留左边指定长度的子串,已禁用
OP_RIGHT(129):在一个字符串中保留右边指定长度的子串,已禁用
OP_SIZE(130):把栈顶元素的字符串长度压入堆栈(无需弹出元素)
5.位操作码
OP_INVERT(131):所有输入的位取反,已禁用
OP_AND(132):对输入的所有位进行布尔与运算,已禁用
OP_OR(133):对输入的每一位进行布尔或运算,已禁用
OP_XOR(134):对输入的每一位进行布尔异或运算,已禁用
OP_EQUAL(135):如果输入的两个数相等,则返回1,否则返回0
OP_EQUALVERIFY(136):与OP_EQUAL一样,之后运行OP_VERIFY
6.算术逻辑操作码
OP_1ADD(139):输入值加1
OP_1SUB(140):输入值减1
OP_2MUL(141):输入值乘2,已禁用
OP_2DIV(142):输入值除2,已禁用
OP_NEGATE(143):输入值符号取反
OP_ABS(144):输入值符号取正
OP_NOT(145):如果输入值为0或1,则输出1或0;否则输出0
OP_0NOTEQUAL(146):输入值为0输出0;否则输出1
OP_ADD(147):输出a+b
OP_SUB(148):输出a-b
OP_MUL(149):输出a*b,已禁用
OP_DIV(150):输出a/b,已禁用
OP_MOD(151):输出a/b的余数,已禁用
OP_LSHIFT(152):把a向左移动b位,保留符号,已禁用
OP_RSHIFT(153):把a向右移动b位,保留符号,已禁用
OP_BOOLAND(154):如果a和b都不为0,则输出1,否则输出0
OP_BOOLOR(155):如果a或b不为0,则输出1,否则输出0
OP_NUMEQUAL(156):如果a=b,则输出1,否则输出0
OP_NUMEQUALVERIFY(157):与OP_NUMEQUAL一样,之后要运行OP_VERIFY
OP_NUMNOTEQUAL(158):如果a!=b则输出1,否则输出0
OP_LESSTHAN(159):如果a<b则输出1,否则输出0
OP_GREATERTHAN(160):如果a>b则输出1,否则输出0
OP_LESSTHANOREQUAL(161):如果a<=b则输出1,否则输出0
OP_GREATERTHANOREQUAL(162):如果a>=b则输出1,否则输出0
OP_MIN(163):输出a,b中的最小值
OP_MAX(164):输出a,b中的最大值
OP_WITHIN(165):如果x在min和max之间,则输出1,否则输出0
7.脚本的加密码
OP_RIPEMD160(166):输入用RIPEMD-160算法散列
OP_SHA1(167):输入用SHA-1算法散列
OP_SHA256(168):输入用SHA-256算法散列
OP_HASH160(169):输入被散列两次,先用SHA-256,再用RIPEMD-160
OP_HASH256(170):输入用SHA-256算法散列两次
OP_CODESEPARATOR(171):所有签名检查只需要匹配最近一次执行的OP_CODESEPARTOR操作数据的签名即可
OP_CHECKSIG(172):全部交易的输出,输入和脚本都被散列,OP_CHECKSIG使用的签名必须是该HASH值和公钥的有效签名,如果是真则返回1,否则返回0
OP_CHECKSIGVERIFY(173):与OP_CHECKSIG一样,但之后执行OP_VERIFY
OP_CHECKMULTISIG(174):对于每个签名和公钥对,OP_CHECKSIG都会被执行,如果公钥数量比签名多,那么一些公钥/签名对会失败.所有的签名要与公钥匹配.如果所有签名都有效,则输出1,否则返回0.因为存在BUG,因此一个未使用的外部值会从堆栈中删除
OP_CHECKMULTISIGVERIFY(175):与OP_CHECKMULTISIG一样,但是之后运行OP_VERIFY
8.脚本中的伪关键字
OP_PUBKEYHASH(253):表示公钥用OP_HASH160操作码散列
OP_PUBKEY(254):表示与OP_CHECKSIG兼容的一个公钥
OP_INVALIDOPCODE(255):匹配任何未指定的操作码
9.保留关键字
OP_RESERVED(80):交易无效,除非发生在未执行的OP_IF分支
OP_VER(98):交易无效,除非发生在未执行的OP_IF分支
OP_VERIF(101):交易无效,除非发生在未执行的OP_IF分支
OP_VERNOTIFY(102):交易无效,除非发生在未执行的OP_IF分支
OP_RESERVED1(137):交易无效,除非发生在未执行的OP_IF分支
OP_RESERVED2(138):交易无效,除非发生在未执行的OP_IF分支
OP_NOP1-OP_NOP10(176-185):这些关键字被忽略
发表评论
-
chaintips
2019-07-02 09:07 3121.invalid 该分支包含至少一块无效区块。 2.head ... -
比特币RPC
2019-02-13 08:10 401代码详解:https://mistydew.github.io ... -
比特币命令行参数
2019-02-03 09:04 429-?:提示常用的命令行参数并退出 -version:打印版本然 ... -
比特币消息类型
2019-01-27 09:28 6311.VERSION:当主动连接上对方时,发送version消息 ... -
外带数据
2019-01-07 08:08 405外带数据:保存在区块链但不进行货币交易的信息,比如需要永久保存 ... -
watch-only 地址
2019-01-06 16:34 475watch-only 地址:监控某一个地址,只能看不能花,相当 ... -
签名模式
2019-01-05 09:24 737交易的签名方式可以通过SIGHASH符号来控制,该符号附加在签 ... -
coinbase交易
2018-12-26 22:14 528coinbase交易:用于凭空产生比特币 1.只有一个输入,该 ... -
根据地址查询私钥
2018-12-26 09:44 695字符串转私钥 1.先将字符串decode base58,获取C ... -
难度值
2018-12-26 07:45 501难度值:它决定了节点需要经过多少次哈希运算才能产生一个合法的区 ... -
即时支付
2018-12-23 16:52 669即时支付:直接发给主节点让主节点快速确认的交易 1.手续费最 ... -
椭圆曲线密码算法
2018-12-21 08:06 691椭圆曲线密码(Elliptic Curve Cryptogra ... -
Merkle树
2018-12-19 21:17 380Merkle哈希数是一类基于 ... -
SHA256
2018-12-19 21:07 535SHA256是构造区块链所用的主要密码哈希函数.无论是区块的头 ... -
比特币交易
2018-12-16 14:16 445交易类型 TX_NONSTANDARD 非标准的交易 TX_P ... -
Bloom过滤器
2018-12-16 09:47 340Bloom filter:是一种节省空间,高效率的数据表示和查 ... -
BerkeleyDB和LevelDB
2018-12-15 08:40 10Berkeley DB:作为比特币的钱包数据库(存储walle ... -
BerkeleyDB和LevelDB
2018-12-15 08:40 1971Berkeley DB:作为比特币的钱包数据库(存储walle ... -
P2P消息通信
2018-12-12 23:23 2991.启动的时间先与程序 ... -
内存池
2018-12-12 08:10 433入块优先级:按交易中的输入对应的UTXO的"链龄&q ...
相关推荐
### QlikView Script 脚本大全:深入解析QlikView数据类型与处理机制 #### 字段(Fields):QlikView数据的核心单位 在QlikView中,字段(Fields)构成了数据处理的基础,它是存储数据的主要容器。字段通常包含了...
Jira ScriptRunner脚本-根据子任务修改父任务自定义字段状态
在搜索请求中,你可以定义一个"script"字段,指定排序使用的脚本。脚本可以计算某个字段的值,或者涉及多个字段的运算。例如,假设我们有一个商品索引,希望根据商品的销售量和用户评价综合排序,可以编写一个脚本来...
在压缩包文件"使用CANAPE脚本script周期性发送报文"中,很可能包含了一个示例脚本或者教程文档,通过阅读和理解这些内容,你可以更好地掌握如何实际操作。请根据提供的资源,结合CANAPE用户手册,逐步实践每个步骤,...
例如,在上面给出的示例脚本中,通过`env.workspace="e:/data/script.gdb"`这一行代码,我们可以看到当前工作空间被设置为一个新的路径,从而覆盖了传递下来的默认工作空间。这样做的好处是可以确保所有的数据操作都...
在本篇中,我们将探讨如何使用PowerDesigner批量生成SQL脚本来将name属性转换为数据库中字段的comment。 首先,我们需要了解PowerDesigner中的PDM(Physical Data Model),这是一个物理数据模型,它包含了数据库的...
使用Bash Shell 脚本对比两个CSV文件中指定字段差异
SAP脚本工具是一款专为SAP系统设计的高级开发工具,它提供了更直观、用户友好的界面,相比原生的SAP Script,使得开发者在编写和调试SAP脚本时能够更加高效和便捷。这款工具的核心优势在于其内置的Analyser模块,它...
在 Elasticsearch 中,可以使用脚本字段(Script Fields)来为每个文档动态生成一个字段值。这在预处理数据时非常有用,可以作为后续聚合和过滤的基础。 2. **管道聚合**(Pipeline Aggregations): 管道聚合是...
ObjectScript是一种基于Java的面向对象的脚本语言,它的设计目标是提供一种高效、灵活且易于学习的语言,以便开发者能够快速构建和维护复杂的系统。它结合了Java的强大功能与脚本语言的便捷性,使得开发过程更为高效...
在Unity中,每个游戏对象(GameObject)都可以包含多个组件,其中就包括脚本组件(Script Component)。这些脚本通常负责处理游戏逻辑、响应事件等。当我们说“禁止脚本运行”,实际上就是指停止脚本组件的Update()...
1. 打开 GuiXT,点击“Script”按钮打开屏幕脚本编辑器。 2. 使用“del”命令删除不必要的字段。 3. 使用“pos”命令重新排列屏幕元素。 GuiXT 命令的实例 例如,在 transaction MM03,Material Master,Basic ...
创建一个名为`ftp_script.txt`的FTP脚本文件,内容如下: ```ftp open %FTP_SERVER% user %FTP_USER% %FTP_PWD% cd %FTP_DIR% put %OUTPUT_FILE% bye ``` 这个FTP脚本连接到服务器,切换到指定目录,并上传刚刚...
"JScript、VBScript、Windows 脚本宿主、Windows 脚本部件、远程脚本、Script 控制和脚本调试程序"这些是与脚本编程相关的技术,它们在ASP(Active Server Pages)中广泛使用,是Web开发中的重要组成部分。...
在ArcGIS中,我们可以使用Python表达式或VBScript(Visual Basic Script)来完成这个任务,因为字段计算器支持这两种脚本语言。 以Python为例,假设坐落单位名称字段名为"LocationName",我们需要创建一个新的字段...
2. **指定脚本名称**:在域用户的属性中指定登录脚本时,应当使用UNC路径(Universal Naming Convention)格式,即`\\server\path\to\script.bat`。这是因为登录脚本是在用户登录时从域控制器下载并执行的,所以必须...
- **访问脚本编辑器**:选择菜单栏中的“工具(Tools)” > “执行命令(Execute Commands)” > “编辑/运行脚本(Edit/Run Script)”,打开PowerDesigner的脚本编辑窗口。 - **编写脚本**:在编辑窗口中,输入...
1. **对话框创建**:通过MAXScript可以创建自定义的对话框,如按钮和输入字段,这在交互式用户界面设计中非常有用。例如,一个简单的按钮可以被编程来显示消息框,实现与用户的互动。 2. **脚本执行**:MAXScript...
确保脚本中的SQL语法正确,数据库名、表名以及字段名的拼写无误。 6. **性能优化** - 对于大型脚本,可能需要考虑批量插入数据以提高性能,避免频繁的磁盘I/O操作。还可以使用`BEGIN`和`COMMIT`语句开启和提交一个...