开发文档

ledger_request

此篇内容尚无原站英文对应版本;切换语言后可浏览英文资料库。
该ledger_request命令告诉服务器从其连接的对等方获取特定分类账版本。这只有在服务器的一个立即连接的同行拥有该分类账时才有效。您可能需要多次运行该命令才能完全获取分类帐。 该ledger_request请求是一个不能由非特权用户运行的管理命令! 请求格式的示例:
{
    "id": 102,
    "command": "ledger_request",
    "ledger_index": 13800000
}
streamd ledger_request 13800000
该请求包含以下参数:
Field Type Description
ledger_index Number (可选)通过其分类帐索引检索指定的分类帐。
ledger_hash String (可选)通过其标识哈希检索指定的分类帐。
您必须提供ledger_index或者ledger_hash但不是同时。 响应遵循标准格式。但是,如果请求没有指定的分类帐,即使成功地指示streamd服务器开始检索分类帐,该请求也会返回失败响应。
注意:要检索分类帐,Stream服务器必须与其历史记录中的分类帐具有直接对等关系。如果没有对等方拥有请求的分类帐,则可以使用connect命令或fixed_ips配置文件的部分将Stream的完整历史记录服务器添加到s1.labs.stream,然后ledger_request再次发出请求。
失败响应表示获取分类帐的状态。成功的响应包含与ledger命令类似格式的分类帐信息。
Loading: "/etc/streamd.cfg"
Connecting to 127.0.0.1:5005
{
   "result" : {
      "acquiring" : {
         "hash" : "01DDD89B6605E20338B8EEB8EB2B0E0DD2F685A2B164F3790C4D634B5734CC26",
         "have_header" : false,
         "peers" : 2,
         "timeouts" : 0
      },
      "error" : "lgrNotFound",
      "error_code" : 20,
      "error_message" : "acquiring ledger containing requested index",
      "request" : {
         "command" : "ledger_request",
         "ledger_index" : 18851277
      },
      "status" : "error"
   }
}
Loading: "/etc/streamd.cfg"
Connecting to 127.0.0.1:5005
{
   "result" : {
      "hash" : "EB68B5B4F6F06BF59B6D7532BCB98BB98E2F10C2435D895217AA0AA7E910FBD5",
      "have_header" : true,
      "have_state" : false,
      "have_transactions" : false,
      "needed_state_hashes" : [
         "C46F7B9E795135447AF24BAF999AB8FC1612A997F6EAAF8B784C226FF0BD8E25",
         "E48F528E4FC2A1DC492C6264B27B420E2285B2A3ECF3A253DB480DA5BFB7F858",
         "B62CD0B2E1277F78BC279FA037F3F747587299B60D23A551C3F63DD137DC0CF8",
         "30014C55701FB8426E496A47B297BEC9E8F5BFA47763CC22DBD9024CC81D39DD",
         "7EB59A853913898FCEA7B701637F33B1054BD36C32A0B910B612EFB9CDFF6334",
         "07ECAD3066D62583883979A2FADAADC8F7D89FA07375843C8A47452639AB2421",
         "97A87E5246AF78463485CB27E08D561E22AAF33D5E2F08FE2FACAE0D05CB5478",
         "50A0525E238629B32324C9F59B4ECBEFE3C21DC726DB9AB3B6758BD1838DFF68",
         "8C541B1ED47C9282E2A28F0B7F3DDFADF06644CAB71B15A3E67D04C5FAFE9BF4",
         "2C6CC536C778D8C0F601E35DA7DD9888C288897E4F603E76357CE2F47E8A7A9F",
         "309E78DEC67D5725476A59E114850556CC693FB6D92092997ADE97E3EFF473CC",
         "8EFF61B6A636AF6B4314CAC0C08F4FED0759E1F782178A822EDE98275E5E4B10",
         "9535645E5D249AC0B6126005B79BB981CBA00286E00154D20A3BCF65743EA3CA",
         "69F5D6FCB41D1E6CEA5ADD42CBD194086B45E957D497DF7AEE62ADAD485660CE",
         "07E93A95DBB0B8A00925DE0DF6D27E41CACC77EF75055A89815006109D82EAD3",
         "7FDF25F660235DCAD649676E3E6729DF920A9B0B4B6A3B090A3C64D7BDE2FB20"
      ],
      "needed_transaction_hashes" : [
         "BA914854F2F5EDFCBD6E3E0B168E5D4CD0FC92927BEE408C6BD38D4F52505A34",
         "AE3A2DB537B01EB33BB3A677242DE52C9AE0A64BD9222EE55E52855276E7EA2A",
         "E145F737B255D93769673CBA6DEBA4F6AC7387A309DAACC72EA5B07ECF03C215",
         "073A118552AA60E1D3C6BE6F65E4AFA01C582D9C41CCC2887244C19D9BFA7741",
         "562DB8580CD3FE19AF5CEA61C2858C10091151B924DBF2AEB7CBB8722E683204",
         "437C0D1C2391057079E9539CF028823D29E6437A965284F6E54CEBF1D25C5D56",
         "1F069486AF5533883609E5C8DB907E97273D9A782DF26F5E5811F1C42ED63A3D",
         "CAA6B7DA68EBA71254C218C81A9EA029A179694BDD0D75A49FB03A7D57BCEE49"
      ],
      "peers" : 6,
      "status" : "success",
      "timeouts" : 1
   }
}
Loading: "/etc/streamd.cfg"
Connecting to 127.0.0.1:5005
{
   "result" : {
      "ledger" : {
         "accepted" : true,
         "account_hash" : "84EBB27D9510AD5B9A3A328201921B3FD418D4A349E85D3DC69E33C7B506407F",
         "close_time" : 486691300,
         "close_time_human" : "2015-Jun-04 00:01:40",
         "close_time_resolution" : 10,
         "closed" : true,
         "hash" : "DCF5D723ECEE1EF56D2B0024CD9BDFF2D8E3DC211BD2B9460165922564ACD863",
         "ledger_hash" : "DCF5D723ECEE1EF56D2B0024CD9BDFF2D8E3DC211BD2B9460165922564ACD863",
         "ledger_index" : "13840000",
         "parent_hash" : "8A3F6FBC62C11DE4538D969F9C7966234635FE6CEB1133DDC37220978F8100A9",
         "seqNum" : "13840000",
         "totalCoins" : "99999022883526403",
         "total_coins" : "99999022883526403",
         "transaction_hash" : "3D759EF3AF1AE2F78716A8CCB2460C3030F82687E54206E883703372B9E1770C"
      },
      "ledger_index" : 13840000,
      "status" : "success"
   }
}
三种可能的响应格式如下:
  1. 当返回一个lgrNotFound错误时,响应有一个字段,acquiring一个Ledger请求对象指示从对等网络获取分类帐的进度。
  2. 当响应显示服务器当前正在提取分类帐时,结果的主体是一个分类帐请求对象,指示从对等网络获取分类账的进度。
  3. 当分类账完全可用时,回应是分类账抬头的表示。
请求对象: 当服务器处于提取分类帐的过程中,但尚未完成时,streamd服务器将返回一个分类帐请求对象,指示其获取分类帐的进度。该对象具有以下字段:
Field Type Description
hash String (可以省略)请求分类帐的散列,如果服务器知道它的话。
have_header Boolean 服务器是否具有请求分类帐的标题部分。
have_state Boolean (可以省略)服务器是否具有请求分类账的账户状态部分。
have_transactions Boolean (可以省略)服务器是否具有请求分类账的交易部分。
needed_state_hashes Array of Strings (可能省略)状态树中最多有16个哈希对象,服务器仍然需要检索。
needed_transaction_hashes Array of Strings (可能会被省略)事务树中最多有16个对象散列,服务器仍然需要检索。
peers Number 服务器查询多少个节点来查找此分类帐。
timeouts Number 取得此分类帐的次数目前已超时。
可能的错误:
  • 任何通用错误类型。
  • invalidParams - 一个或多个字段指定不正确,或缺少一个或多个必填字段。如果您指定等于或高于当前正在处理的分类帐的分类帐索引,也会发生此错误。
  • lgrNotFound - 如果分类帐尚未提供。这表明服务器已经开始提取分类账,尽管如果没有连接的对等方拥有请求的分类帐,它可能会失败。(以前,这个错误使用了代码ledgerNotFound。)
THE NEXT CONNECTION

下一次连接,从这里开始。

加入 Stream 社区,一起探索价值互联。

联系我们