Where i can find documentation about HL-Fabric protobufs structure and GRPC communications between nodes? #fabric #grpc #network


Jason Yellick <jyellick@...>
 

Sorry for a late reply, but wanted to add a bit more information to this thread.

Historically, the protos lived inside of the fabric repository, but this caused problems for users who wanted to consume only the protos, and not the rest of the Fabric code, so at some point this last year, they were moved out to https://github.com/hyperledger/fabric-protos .  This repo automatically triggers a job on merge which causes https://github.com/hyperledger/fabric-protos-go to be built, and then https://github.com/hyperledger/fabric vendors in this automatically built repo.
 
As far as understanding the dependency tree of the protobuf definitions, there is some amount of documentation in the proto files themselves.  Typically, opaque fields are annotated with their expected types and how to identify them.
 
There is a Fabric tool out there -- configtxlator https://hyperledger-fabric.readthedocs.io/en/master/commands/configtxlator.html -- which does its best to understand the entire taxonomy of the Fabric proto definitions and is capable of translating Fabric protobufs into JSON, including transforming the opaque byte fields into their correct underlying type and JSON-ifying them.  If you're just looking to inspect some Fabric artifacts and understand what all is in some blob of binary goo, that's your best bet.  You can also look at the underlying decorations the tool uses https://github.com/hyperledger/fabric/tree/master/common/tools/protolator/protoext to understand how this tool resolves opaque fields.
 
Thanks,
~Jason

----- Original message -----
From: "Yacov" <yacovm@...>
Sent by: fabric@...
To: "Aleksandr Kochetkov" <aleksandr.kochetkov@...>
Cc: fabric@...
Subject: [EXTERNAL] Re: [Hyperledger Fabric] Where i can find documentation about HL-Fabric protobufs structure and GRPC communications between nodes? #fabric #grpc #network
Date: Tue, Dec 3, 2019 9:07 AM
 
Look in http://www.bchainledger.com/2017/04/under-construction-hyperledger-fabric.html 



From:        "Aleksandr Kochetkov" <aleksandr.kochetkov@...>
To:        fabric@...
Date:        12/03/2019 12:46 PM
Subject:        [EXTERNAL] Re: [Hyperledger Fabric] Where i can find documentation about HL-Fabric protobufs structure and GRPC communications between nodes? #fabric #grpc #network
Sent by:        fabric@...



Thanks for bringing this repo into conversion Yacov!
As we can see from repo, there are a lot of protobufs, sometimes one utilizes another as payload/data etc. That exactly the reason why i'm asking for documentation, which would explain how all this protobufs are connected and used in Fabric.
2



 
 


Yacov
 

Look in http://www.bchainledger.com/2017/04/under-construction-hyperledger-fabric.html 



From:        "Aleksandr Kochetkov" <aleksandr.kochetkov@...>
To:        fabric@...
Date:        12/03/2019 12:46 PM
Subject:        [EXTERNAL] Re: [Hyperledger Fabric] Where i can find documentation about HL-Fabric protobufs structure and GRPC communications between nodes? #fabric #grpc #network
Sent by:        fabric@...




Thanks for bringing this repo into conversion Yacov!
As we can see from repo, there are a lot of protobufs, sometimes one utilizes another as payload/data etc. That exactly the reason why i'm asking for documentation, which would explain how all this protobufs are connected and used in Fabric.
2





Aleksandr Kochetkov
 

Thanks for bringing this repo into conversion Yacov!
As we can see from repo, there are a lot of protobufs, sometimes one utilizes another as payload/data etc. That exactly the reason why i'm asking for documentation, which would explain how all this protobufs are connected and used in Fabric.
2


Yacov
 

Take a look at https://github.com/hyperledger/fabric-protos/



From:        "Prasanth Sundaravelu" <prasanths96@...>
To:        Aleksandr Kochetkov <aleksandr.kochetkov@...>
Cc:        fabric@...
Date:        12/03/2019 12:33 PM
Subject:        [EXTERNAL] Re: [Hyperledger Fabric] Where i can find documentation about HL-Fabric protobufs structure and GRPC communications between nodes? #fabric #grpc #network
Sent by:        fabric@...




I would also love to get the same!


On Tue, 3 Dec 2019, 4:01 pm Aleksandr Kochetkov, <aleksandr.kochetkov@...> wrote:
I'm looking for documentation or just detailed description in some form of fabric protobuf structure and usage. Nodes communicate to each other using GRPC, but it's not clear what exactly they sending to each other? Blocks and transactions also stored in protobufs inside level db, i need to know which protobufs should i use to decode blocks. Of course it's possible to reverse engineer all that, but it takes a lot of time. Maybe this docs right now is not well formatted/not ready to be published in official docs, but it would be great to have them even in draft form. Thanks in advance!





Prasanth Sundaravelu
 

I would also love to get the same!


On Tue, 3 Dec 2019, 4:01 pm Aleksandr Kochetkov, <aleksandr.kochetkov@...> wrote:
I'm looking for documentation or just detailed description in some form of fabric protobuf structure and usage. Nodes communicate to each other using GRPC, but it's not clear what exactly they sending to each other? Blocks and transactions also stored in protobufs inside level db, i need to know which protobufs should i use to decode blocks. Of course it's possible to reverse engineer all that, but it takes a lot of time. Maybe this docs right now is not well formatted/not ready to be published in official docs, but it would be great to have them even in draft form. Thanks in advance!


Aleksandr Kochetkov
 

I'm looking for documentation or just detailed description in some form of fabric protobuf structure and usage. Nodes communicate to each other using GRPC, but it's not clear what exactly they sending to each other? Blocks and transactions also stored in protobufs inside level db, i need to know which protobufs should i use to decode blocks. Of course it's possible to reverse engineer all that, but it takes a lot of time. Maybe this docs right now is not well formatted/not ready to be published in official docs, but it would be great to have them even in draft form. Thanks in advance!