代码之家  ›  专栏  ›  技术社区  ›  GraphicalDot

从客户端的锯齿地址获取数据

  •  1
  • GraphicalDot  · 技术社区  · 6 年前

    我以protobuf格式将sawtooth上的数据存储在一个地址(由公钥和事务族生成的地址)。 已在上发出获取请求 http://rest-api:8008/state/ 获取格式为

    {
      "data": "CkIwM2FjNjA3MTUzZmRlMzJhNzhiNDFlMzkxN2QwZDlkZmJmMmM2NjZmOWFhZGMzMWRiNTNjODZhNzFkNDMyNmZkNGUSBnNlbGxlchoROTc4LTAtNTc2LTUyMzk1LTAiETgxOS02OTAtNzk4Nng1MTE5Kg0xLTk4MTAtMTE0NS01",
      "head":   "bea2911b4d84b897300fc4a9eb6b56b7ddc59c88c115dab6c09935d658b57cf229b538a3cb3d407647211c8847e46db07f9cff65af2835dfc7732be9b443fae3",
      "link": "http://192.168.1.13:8008/state/318c9fa678220444fb9b209a57c849320a7f61c984e5b8a6a56880030728bdb530a5d0?head=bea2911b4d84b7c7300fc4a9eb6b56b7ddc59c88c115dab6c09935d658b57cf229b538a3cb3d407647211c8847e46db07f9cff65af2835dfc7732be9b443fae3"
    

    message Account {
      string public_key = 1;
      string user_type = 2;
      string adhaar_number = 3;
      string phone_number = 4;
      string pan_card_number = 5;
    }
     transaction = Account()
     transaction.ParseFromString( base64.b64decode(data.encode()))
    
     THat just gave a number 129. 
    

    更新: \x11978-1-61207-456-6*\x10+64(0)19727879362\r0-609-80129-5'

    抱歉我弄明白了:

    account=transaction.ParseFromString(<serializedBytes>)
    

    可以像普通类变量一样访问帐户详细信息。

    account.public_key 
    account.adhaar_number 
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Frank C.    6 年前

    如果我的理解是正确的,那么您可以相对于restapi检索数据 /state/xxxx /state?address=xxxx.

    当数据通过 setState 或者类似的调用,它首先执行base64编码。

    您需要执行base64解码,然后 ParseFromString

    推荐文章