Hello , 我是09

此篇内容为我2018~2020年在【库神】工作时,对部分重要知识做的学习总结

随着比特币冲破10万美金,行业又再次兴起,希望相关从业者可以学习到你需要的内容

投票前,需要先将自己注册到投票系统

注册配置参数:

(1.) action = regproxy

(2.) code = eosio

(3.) proxy = 账户名称

(4.) isproxy = @"0"

 

注册返回的重要参数为binargs,返回数据大概为

{
        message = "ok",
        data =     {
         binargs = "10c420850c117ce750c810410c527ce7102700000000000004454f53000000000474657374",
        },
        code = 0,
}

 

获取blockChain (最新区块信息)

不需要任何注册参数

返回的内容大致如下

{
            message = "ok",
              data = {
                     head_block_id = "00580b4f39fafd062154534c6c743a0e8b48b5f992775af2339d245153254dbe",
                     last_irreversible_block_num = 5769729,
                     head_block_producer = "starteosiobp",
                     virtual_block_net_limit = 1048576000,
                     server_version = "db031363",
                     head_block_time = "2018-07-14T02:52:04.500",
                     block_cpu_limit = 169814,
                     block_net_limit = 1038080,
                     last_irreversible_block_id = "00580a01aa1aca06e95da40516f842e31653e10fa0666935d853ae767ee04412",
                     virtual_block_cpu_limit = 200000000,
                     chain_id = "aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906",
                     head_block_num = 5770063,
              },
              code = 0,
}

其中最主要的信息为

(1.) chain_id                  用于配置chain_Id
(2.) head_block_time 用于weakSelf.expiration = [[[NSDate dateFromString: model.head_block_time] dateByAddingTimeInterval: 30] formatterToISO8601];
(3.) head_block_num 用于ref_block_num
(4.) head_block_id 在Demo中需要通过JS进行一些列计算的转换之后当做ref_block_prefix参数使用

 

发送交易

发送交易的参数只有两个

packed_trx       //交易数据
signatureStr     //签名

配置交易数据,大致信息如下

(1. )  ref_block_prefix             区加快信息中的head_block_id通过一些列运算后得到
(2. )  ref_block_num                区加快信息中的head_block_num直接使用
(3. )  expiration                   区块信息中的head_block_time字段,经过处理后得到
(4. )  context_free_data            写死空数组 @[]
(5. )  signatures                   写死空数组 @[]
(6. )  context_free_actions         写死空数组 @[]
(7. )  delay_sec                    写死0  (NSNumber类型)
(8. )  max_kcpu_usage               写死0  (NSNumber类型)
(9. )  max_net_usage_words          写死0  (NSNumber类型)
(10. ) account                      帮我创建的人的账户名      eosio
(11. ) name                         传入action
(12. ) data                         传入binargs
(13. ) actor                        账户名
(14. ) permission                   写死active

 

Json投票数据

{
      message = "ok",
             data = {
                   head_block_num = 5808132,              //  最新的区块高度
                   ram_quota = 4075,                      //  注册时分配的内存大小
                   cpu_weight = 900,                      //  注册时分配的CPU
                   permissions = ({                       //  权限分配
                         required_auth = {
                                waits = (),
                                keys = ({
                                      key = "EOS6vu6TggGSJoStBiC5Vkq1WW2KKvpRFeDAfszf7p8zFvWtPP2Cb",        //  公钥
                                      weight = 1,
                                }, ),
                                accounts = (),
                                threshold = 1,
                         },
                         parent = "owner",
                         perm_name = "active",
                   }, {
                         required_auth = {
                                waits = (),
                                keys = ({
                                      key = "EOS6vu6TggGSJoStBiC5Vkq1WW2KKvpRFeDAfszf7p8zFvWtPP2Cb",        //  公钥
                                      weight = 1,
                                }, ),
                                accounts = (),
                                threshold = 1,
                         },
                         parent = "",
                         perm_name = "owner",
                   }, ),
                   cpu_limit = {                          //  cpu使用情况
                         max = 9395,
                         available = 9395,
                         used = 0,
                   },
                   last_code_update = "1970-01-01T00:00:00.000",
                   account_name = "wangxinyu123",
                   head_block_time = "2018-07-14T08:10:30.500",
                   net_limit = {                      //  带宽
                         max = 5483,                  //  最大带宽
                         available = 5483,            //  可用带宽
                         used = 0,                    //  已用带宽
                   },

                   privileged = 0,
                   created = "2018-07-14T07:16:35.000",
                   net_weight = 100,
                   total_resources = {
                         ram_bytes = 4075,
                         net_weight = "0.0100 EOS",
                         owner = "wangxinyu123",
                         cpu_weight = "0.0900 EOS",
                   },
                   ram_usage = 2996,
             },
             code = 0,
}

 

查询最新区块信息返回的数据

 {
            message = "ok",
            data =   {
              head_block_id = "0058dad0bc707cee05b3afc918b5c5ef9ac944a535685f583d42196110c4c43b",
              last_irreversible_block_num = 5822849,
              head_block_producer = "eoscleanerbp",
              virtual_block_net_limit = 1048576000,
              server_version = "db031363",
              head_block_time = "2018-07-14T10:16:11.500",
              block_cpu_limit = 169108,
              block_net_limit = 1037920,
              last_irreversible_block_id = "0058d98134bbe0417a7cb616f582c092b9fd05adf4f27f9ce3df2a474db7080e",
              virtual_block_cpu_limit = 200000000,
              chain_id = "aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906",
              head_block_num = 5823184,
            },
            code = 0,
}