Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gateway documentation #2807

Closed
11 of 15 tasks
denyeart opened this issue Aug 9, 2021 · 22 comments
Closed
11 of 15 tasks

Gateway documentation #2807

denyeart opened this issue Aug 9, 2021 · 22 comments
Assignees
Milestone

Comments

@denyeart
Copy link
Contributor

denyeart commented Aug 9, 2021

Terminology

  • Target peer endpoint (or set of load balanced peers).
  • Peer Gateway ("gateway in the peer") versus SDK Gateway ("gateway in the SDK")
  • Fabric Gateway SDKs versus Legacy SDKs

Top Priorities (Dave)

Top priorities (Mark)

Top priorities (Andy)

  • Add "Gateway" topic next to current Service Discovery architectural topic, cross-link them, and make any updates to "Service Discovery" so that they complement each other well.

Top priorities (Josh with guidance from Andy)

Top priorities (Chris with guidance from Andy and Mark)

  • updating existing applications to use new SDKs

Key Concepts - Private data (Andy)

Other Key Concept topics (Josh)

Tutorials (Josh)

FAQ - minor edits required (Dave)

Developing Applications and Commercial Paper tutorial (Andy/Mark/Matthew/James)

@susha1377 susha1377 added this to the 2021Q3 milestone Aug 11, 2021
@yacovm
Copy link
Contributor

yacovm commented Oct 22, 2021

https://hyperledger-fabric.readthedocs.io/en/latest/discovery-overview.html Update "Service Discovery" topic to be "Service Discovery and Gateway"

I don't think we should couple SD and GW.
Service discovery is a service that is used also by Fabric smart client and older SDKs.
The fact that the gateway uses it doesn't mean we should couple the two together.

The gateway feature is big enough to deserve its own page. Of course, it makes sense to link to the gateway from the service discovery and vice versa, but let's not create technical confusion.

@denyeart
Copy link
Contributor Author

@yacovm

Add "Gateway" topic next to current Service Discovery architectural topic, cross-link them, and make any updates to "Service Discovery" so that they complement each other well.

You can remove your emoji now!

@joshhus
Copy link
Contributor

joshhus commented Oct 28, 2021

@denyeart Should this link to Epic #2825 ... no correct answer.

@denyeart
Copy link
Contributor Author

@joshhus yes this issue is a child of epic #2825

@joshhus
Copy link
Contributor

joshhus commented Nov 3, 2021

  • Reviewed / commented on Gateway overview doc PR - Add gateway architecture page to docs #3008 ... I would recommend another iteration before final, due to length and complexity.
  • Terminology - I think we can properly initial capitalize "Fabric Gateway" as a feature (even though it's no-cost), and then safely use "gateway" as shorthand within that context.

@joshhus
Copy link
Contributor

joshhus commented Nov 8, 2021

@denyeart Can you confirm the tutorials text - seems odd that the CLI would not use gateway. Or are we saying that CLI does not access the gateway for THIS command / examples.
Also what is this https://github.com/hyperledger/fabric/tree/main/docs
vs. this https://github.com/hyperledger-labs/fabric-operations-console/tree/main/docs

@denyeart
Copy link
Contributor Author

denyeart commented Nov 9, 2021

@joshhus CLI should ideally use gateway, but updating the CLI has not been prioritized yet.

Your first link is the main fabric docs source that generates ReadTheDocs.
The second link is specific to the IBP fabric operations console that was contributed recently to Hyperledger.

@joshhus
Copy link
Contributor

joshhus commented Nov 11, 2021

I don't seem to have access to check boxes. Tutorials done. Gateway overview done or close to it.
2 of 3 Key Concepts done, at high level mention. Will post URLs to verify.

@joshhus
Copy link
Contributor

joshhus commented Nov 16, 2021

@denyeart I suggested some clarifications for your follow on PR - 2 comments - #3047
@andrew-coleman

@denyeart
Copy link
Contributor Author

@denyeart I suggested some clarifications for your follow on PR - 2 comments - #3047 @andrew-coleman

@joshhus I answered your direct question in #3407. Please go ahead with any subsequent edits in another follow-on PR.

@joshhus
Copy link
Contributor

joshhus commented Nov 19, 2021

@denyeart @andrew-coleman Another page to get a redo for for 2.4 gateway - https://hyperledger-fabric.readthedocs.io/en/release-2.3/txflow.html?highlight=transaction%20flow . ... With images.

@joshhus
Copy link
Contributor

joshhus commented Nov 22, 2021

@jonmchan
Copy link

jonmchan commented Dec 16, 2021

New hyperledger fabric developer feedback - I am totally confused between 2.4 Fabric Gateway and the previous gateway references.

  1. What/where is the "Gateway" design element - https://hyperledger-fabric.readthedocs.io/en/latest/developapps/gateway.html. Is this deprecated by Fabric Gateway? What gateway code is being called in the code snippets await gateway.connect(connectionProfile, connectionOptions); ?

  2. Is https://github.com/hyperledger/fabric-gateway-java related to 2.4 Fabric Gateway?

It would appear there are 3 references to 3 different "gateway" code or design elements. Clarity in documentation would be very much appreciated, especially if older versions can not be retroactively changed to remove overloaded references.

@bestbeforetoday
Copy link
Member

@jonmchan The documentation is still being reworked following the release of Fabric v2.4, including the Fabric Gateway service. Developing Applications is one of the pieces not yet updated. Feedback on where it is deficient (and it is!) is welcome; as are contributions.

Do these updated pages make things any clearer around Fabric Gateway and the application APIs?

@jonmchan
Copy link

@bestbeforetoday thanks for the reply. The updated pages provide limited clarity on the topic for me. Yes, through the documentation, I understand the gateway abstracts away from the client having to know which peers to connect and exposes evaluate, endorse, and submit functions to the client to interact with the blockchain, but how this relates to older versions of the code and fabric-gateway-java is not understood. Further, no working example of this is available (ran into issue trying to start fabric-gateway test network and scenarios - hyperledger/fabric-gateway#351 (comment)). A tutorial would be very useful. I found the original RFC more insightful than the documentation - https://hyperledger.github.io/fabric-rfcs/text/0000-fabric-gateway.html.

Open questions and state of learning discovery for this new hyperledger fabric developer:

What becomes of all the connection profiles and setup mentioned in https://hyperledger-fabric.readthedocs.io/en/latest/developapps/gateway.html?

It would appear from the RFC that fabric-gateway-java is indeed related to Fabric Gateway as mentioned in prior art https://hyperledger.github.io/fabric-rfcs/text/0000-fabric-gateway.html#prior-art? Is this the same project? Does the fabric-gateway-java become deprecated or are they independent methodologies of achieving the same thing?

@jonmchan
Copy link

imho, one of the biggest causes of confusion is the name overload for "fabric-gateway". The new 2.4 integrated Fabric Gateway is exactly the same as the 1.4 external fabric-gateway which makes google searching extremely confusing and frustrating - it's not like these 2 things are different - they're both implementations of a gateway system so you can't even tell from reading the context. The original poster "Peer Gateway" vs "SDK Gateway" terminology needs to be highlighted and utilized as much as possible.

@bestbeforetoday
Copy link
Member

bestbeforetoday commented Dec 16, 2021

@jonmchan The tutorial for running a Fabric application has now been updated, and steps through set up and running one of the samples in the fabric-samples repository that uses the new application API:

https://hyperledger-fabric.readthedocs.io/en/latest/write_first_app.html

Does this help?

@bestbeforetoday
Copy link
Member

@jonmchan The two documentation pages I linked to earlier should answer your question on how the fabric-gateway and fabric-gateway-java APIs relate to each other. For example, the Fabric Contract APIs and Application APIs page refers and links to the fabric-gateway API as "the preferred API for developing applications for Fabric v2.4 onwards", whereas it refers and links to the fabric-gateway-java SDK as "Legacy application SDKs [that] support versions of Fabric prior to v2.4, and do not require the Gateway peer capability."

Specific suggestions for what to say where to make things clearer are welcome.

@jonmchan
Copy link

@bestbeforetoday i'll go through the tutorial and leave feedback - this looks like it might be exactly what I'm looking for.

In terms of specific suggestions, since the documentation is very large and spans multiple pages, having a note on https://hyperledger-fabric.readthedocs.io/en/latest/developapps/gateway.html and https://hyperledger-fabric.readthedocs.io/en/latest/gateway.html may be useful for those directly going to those pages and not browsing the entire documentation. Alternatively, could the gateway pages be consolidated?

Thank you.

@joshhus
Copy link
Contributor

joshhus commented Dec 17, 2021

@jonmchan In January we are restarting a HLF community monthly call on documentation. Perhaps you'd like to join it to give feedback and contributions. TBA. @denyeart

@jonmchan
Copy link

@joshhus sure - i'd be interested in participating. Keep me posted. Thank you.

@denyeart
Copy link
Contributor Author

denyeart commented Jan 4, 2022

Closing this item in favor of individual issues for the remaining subtasks.

@denyeart denyeart closed this as completed Jan 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants