Skip to content

Latest commit

 

History

History
33 lines (22 loc) · 2.65 KB

英语词汇学习.md

File metadata and controls

33 lines (22 loc) · 2.65 KB

英语词汇学习

verifymessage 和 validateaddress 这俩函数名的动词为啥是不一样的呢?

verifymessagevalidateaddress 使用了不同的动词(verifyvalidate)是因为它们的功能和侧重点不同,在软件术语中,这两个动词传达了各自的特定含义:

1. verify(验证)

  • 动词含义: verify 通常用于“验证”某个事物的真实性或正确性。它的重点是检查某个声明或数据是否真实可信
  • verifymessage 中的作用:
    • verifymessage 是用来验证消息的真实性,即:它检查提供的签名是否确实由某个比特币地址的持有者生成。这个过程需要确认签名是否与消息和公钥匹配,因此是一个验证(verification)过程。

通过 verifymessage,你是在问:“这条消息真的是由这个地址的持有者签名的吗?” 所以,这里使用了 verify,它强调的是验证某件事是否真实。

2. validate(校验/验证)

  • 动词含义: validate 一般用于检查某些数据是否符合特定的标准或规则,侧重于数据的结构和格式的合法性。
  • validateaddress 中的作用:
    • validateaddress 是用来校验一个比特币地址是否符合比特币协议规定的格式标准。它检查的是这个地址是否为一个合法有效的比特币地址(比如地址的长度、版本、校验和等),并不涉及地址的持有者或消息的真实性。

使用 validateaddress,你是在问:“这个比特币地址的格式是否合法?” 因此使用了 validate,表示检查格式、结构或数据的合规性。


总结区别:

  • verify 强调真实性,它用于确认数据的正确性和真实性,比如 verifymessage 是为了验证消息是否由特定地址签名。
  • validate 强调合法性格式校验,它用于确保某个输入符合规则,比如 validateaddress 是为了验证地址格式是否正确。

这就是为什么这两个命令的动词不同的原因,它们的侧重点不同,分别针对不同的验证目标。

这个错误 return errors.Errorf("output %d script mismatch: got %x, expected %x", idx, txo.PkScript, pkScript) 但是为啥要用过去式呢

使用过去式“mismatch”通常是为了强调一个已经发生的状态,即“输出脚本不匹配”这一结果已经存在。 在错误信息中,这种用法可以使语句更加清晰,表明这是一个已识别的问题。 你也可以选择用现在进行时,如“is mismatched”,但常见的习惯是用过去式来描述这种状态。