**I want to examine the gRPC Message Flow from invoking a smart contract until a block is created:**

I exactly want to examine these steps (the used message stream) I later found composed in a whole block (If I understand it right these parts are only put together at the end in a block some adds):

**Invoke call of a Chaincode e.g. Change Value "a" to "10" in using CLI:**

```
 1. CLI sends Proposal to Endorser -> [SignedProposal with Signature, Proposal:(Header+Payload)]

 2. Endorser sends Proposal Response back to CLI -> [ProposalResponse with its Endorsement,
    PropRespPayload] 

 3. CLI packs endorsements into Transaction + sends them to orderer for block creation

 4. Block is created by orderer + validation of sign.

```

What is the fastest way to fetch them?

**What I did:**

1. (*Not good, rather laborious*) Try to modificate code in binaries like "peer" where gRPC is handled, rebuild images:

My problem is that I am able to build and modificate the binaries like the peer executable (which is used in images and started inside a docker container like the peer), but I finally want to use them and make us of the sample projects like first-network, where I can invoke a transaction and log with own implementations what is gRPCed there. What I could do here and what is very time consuming is to rebuild all images and later make all sample files fitting to the new environement and implement this parts, but I think there have to be a faster way of evaluating the message flow (with the output of the full gRPC message stream /decoded and encoded).

2. (*I think the best way for now*):
I have not discovered faster ways yet (am new to Go and gRPC), instead of logging what gRPC is sending with wireshark and try to decode it (but it won't work for all parts, cause of incomplete messages or afraid). For some parts (proving sign) it is necessary that I have the marshalled version of some objects. This is what I need the most actually, but therefore I need to understand the gRPC content of the wiresharked parts :)

Do you have any suggestions for me? Would you rather go on with Way1 or Way2? Or am I on a too complicated way to fix it? 

Is there a faster way existing? I mean I need the unmarshaled parts, but also the marshaled content of some objects and I have the proto files (when these are the correct ones for the logging parts I did in wireshark while an invoke was take place).