zoukankan      html  css  js  c++  java
  • 比原空投问答题库题解(三)

    涉及到代码部分(以1.4版本为准)的回答,均可使用notepad++查找对应数字及其变量

    36、 以下哪个错误码代表 "Bytom API Error"?
    A:BTM000
    B:BTM103
    c.:BTM404

    答案:A。搜索结果:bytom-masterapierrors.go:116,BTM000对应bytom API error

    37 、1个BTM可以转换成多少gas?
    A:200000
    B:300000
    C:500000

    答案:A.看第32题所在代码bytom-masterprotocolvalidation x.go:47的(g *GasState) setGas(BTMValue int64, txSize int64) error,可知道单次交易只能付200000GAS(BTMsatoshi)的燃费,1BTM就是100000000BTMsatoshi,所以把1BTM作为单次交易的燃费的话,只会用200000BTMsatoshi

    38、 比原链挖矿的nonce值有多少位?
    A: 32位
    B :64位
    C: 128位

    答案:B,搜索nonce结果可知,nonce用int64(64位)或byte[8](8个字节=64位)储存

    39、 比原链虚拟机叫什么?
    A :EVM
    B: BVM
    C: CVM

    答案:B,Bytom Virtual Machine

    40、 虚拟机操作码OP_HASH160代表什么运算?
    A: RIPEMD160运算
    B :SHA256运算
    C :SM3运算

    答案:A.bytom-masterprotocolvmops.go:306有一行代码OP_HASH160:       {OP_HASH160, "HASH160", opHash160},,与变量opHash160有所关联

    这个变量其实是函数来的。。。bytom-masterprotocolvmcrypto.go:142这个函数,执行3种操作:pop(false),applyCost(cost),push(crypto.Ripemd160(data), false)

    41、 虚拟机操作码OP_SHA256代表什么运算?
    A :SHA3-256运算
    B :SHA2-256运算
    C :SM3运算

    答案:B,bytom-masterprotocolvmops.go:304可看出OP_SHA256对应函数opSha256,这个函数执行的是doHash(vm, sha256.New),可排除SM3这种可能性,又因为下方有函数opSha3执行doHash(vm, sha3.New256),可能这个函数执行的是SHA3-256运算,可得出执行的是SHA2-256运算

    42、 虚拟机操作码OP_CHECKSIG需要取出几个参数?
    A :1个
    B: 2个
    C :3个

    答案:%#%^**(,OP_CHECKSIG操作对应opCheckSig这个函数,bytom-masterprotocolvmcrypto.go:44的opCheckSig执行vm.pushBool(ed25519.Verify(ed25519.PublicKey(pubkeyBytes), msg, sig), true),题干不明,是指传入vm.pushBool几个函数,还是总共需要几个变量给这个返回

    43、 比原链默认交易程序是什么?
    A :P2PKHSigProgram
    B :P2SHProgram
    C :P2SPMultiSigProgram

    答案:C.查看bytom-masterprotocolvmvmutilscript.go关于这个3个函数的注释,P2PKHSigProgram生成脚本控制账号地址,P2SHProgram生成脚本控制联合账号地址,P2SPMultiSigProgram生成脚本控制交易输出

    44、 下面哪个不是比原智能合约的语句类型?
    A :verify
    B: lock
    C :check

    答案:C,比原链 | Equity 语言入门http://8btc.com/forum.php?mod=viewthread&tid=196068 里面有提到,语句有3种,verify语句用来验证表达式的结果是否为真,unlock 语句用来解锁合约中锁定的 value,lock 语句可以将原合约中的 value 以及支付给条款函数的 value 锁定至新的合约中。check并不是语句类型

    45 、比原链智能合约时什么时候上线的
    A :2018.7.24
    B: 2018.7.25
    C :2018.7.26

    答案:C

    46、比原链的地址长度主要为哪两种
    A :P2PKH:40 和 P2SH:60
    B: P2PKH:32 和 P2SH:52
    C: P2PKH:42 和 P2SH:62

    答案:C

    查看freewind教程第12篇:比原是如何通过/create-account-receiver创建地址的,追踪代码到bytom-masteraccountaccounts.go:421,推断cp就是最终返回的地址,生成地址相关的函数createP2PKH(账号地址)和createP2SH(联合账号地址)就在下面,前者执行函数NewAddressWitnessPubKeyHash,进去的地址位数是20;后者执行函数NewAddressWitnessScriptHash,进去的地址位数是32.这俩函数执行的共同函数:EncodeAddress(),这俩类型声明了不同函数,但执行步骤都是str, err := encodeSegWitAddress(a.hrp, a.witnessVersion,a.witnessProgram[:]),进去里面(bytom-mastercommonaddress.go:73),可以看到进去的字符串要执行bech32.ConvertBits(witnessProgram, 8, 5, true)和bech32.Bech32Encode(hrp, combined),很难追踪到底是做了什么。

    blokckmeta.com里面有地址可查,把地址扔进python用len函数查,发现普通的账号地址是42位(前面的bm也算进去了)

    47、比原链节点发现使用的DHT算法?
    A :Chord
    B: Pastry
    C :Kademlia

     答案:C.用kademila这个关键词搜索,会在discover包的注释里面找到这个关键词,意思是比原的p2p网络搜索用这个算法搜索

    48、比原链每个区块奖励多少BTM?
    A :410.5
    B :412.5
    C :414.5

    答案:B,使用4125作为关键词搜索,可以在bytom-readconsensusgeneral.go:22找到baseSubsidy,同文件的66行下能找到计算区块奖励的函数:BlockSubsidy(),可得出在前839999个区块(创世区块除外),每个区块的奖励都是412.5BTM(41250000000BTMsatoshi)

    49、比原链每个区块奖励是固定的吗?
    A :是
    B :不是
    C :不一定

    答案:C,区块高度每840000减半出块奖励,在此期间的块奖励都是固定的,但是区块高度到达840000的倍数之后会变化

    50、比原链智能合约发布时有多少模板?
    A: 8
    B :9
    C :10

    答案:B,使用BTM的资产ID:fffff...fff搜索,会发现bytom-mastercmdytomclicommands emplate.go有9处这种代码,仔细查看对应的指令集,会发现都是合约发布的基本操作

  • 相关阅读:
    2、容器初探
    3、二叉树:先序,中序,后序循环遍历详解
    Hebbian Learning Rule
    论文笔记 Weakly-Supervised Spatial Context Networks
    在Caffe添加Python layer详细步骤
    论文笔记 Learning to Compare Image Patches via Convolutional Neural Networks
    Deconvolution 反卷积理解
    论文笔记 Feature Pyramid Networks for Object Detection
    Caffe2 初识
    论文笔记 Densely Connected Convolutional Networks
  • 原文地址:https://www.cnblogs.com/dgutfly/p/9634398.html
Copyright © 2011-2022 走看看