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

chore: Add reference doc: Comparison of ways to communicate with Gno.land #2324

Open
wants to merge 12 commits into
base: master
Choose a base branch
from

Conversation

jefft0
Copy link
Contributor

@jefft0 jefft0 commented Jun 11, 2024

Fixes #2026
cc: @leohhhn

@jefft0 jefft0 requested a review from moul as a code owner June 11, 2024 08:53
Copy link
Member

@zivkovicmilos zivkovicmilos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the writeup 🙏

I've left some comments, mostly concerns regarding the wording about Amino

Can we open a parallel docs.gno.land PR? @leohhhn, please give @jefft0 the pointers


# Interact with Gno.land without gnokey

A [previous tutorial](interact-with-gnoland.md) showed how to interact with the
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this link valid? @leohhhn

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like this file was removed a couple days ago. 5541e35
@leohhhn , is there another equivalent doc that we can link to?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That file has been removed since it was outdated. Can you please rephrase this paragraph to exclude the link/include mentions of other related things in the docs?

other methods to interact with gno.land without using `gnokey`, and when you might
want to use them. This is mainly for developers writing an application.

## RPC WebSocket
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would note this as the JSON-RPC interface, ws or not

## RPC WebSocket

**What is it?** The RPC interface is the base-level method to interact with the
gno.land blockchain over a WebSocket connection. The actual RPC messages are Protobuf format.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you mean by Protobuf format?

gno.land blockchain over a WebSocket connection. The actual RPC messages are Protobuf format.

**When to use it?** The RPC WebSocket interface is used under-the-hood by `gnokey` and all
the other methods. Some of the messages are simple and your app could open a WebSocket
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As far as I know, gnokey uses the http interface exclusively, not the WS one


## gRPC clients generated by Protobuf

**What is it?** The core Gno codebase uses the light-weight
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

light-weight 👁️ 👄 👁️

id: interact-with-gnoland-without-gnokey
---

# Interact with Gno.land without gnokey
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm on the fence about this title, I think it's too general (the article doesn't even mention the JS clients)

Copy link
Contributor

@leohhhn leohhhn Jun 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 @jefft0

Let's think about a good title that is not too general. See last comment.

@leohhhn leohhhn self-requested a review June 26, 2024 16:52
id: interact-with-gnoland-without-gnokey
---

# Interact with Gno.land without gnokey
Copy link
Contributor

@leohhhn leohhhn Jun 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 @jefft0

Let's think about a good title that is not too general. See last comment.


# Interact with Gno.land without gnokey

A [previous tutorial](interact-with-gnoland.md) showed how to interact with the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That file has been removed since it was outdated. Can you please rephrase this paragraph to exclude the link/include mentions of other related things in the docs?

different programming language. Instead, you can import a Protobuf library to format and parse
the messages for interacting with the blockchain.

## Go code with `gnoclient` and `crypto/keys`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think for this section we should definitely reference the how-to guide on Connecting from Go, as well as the godoc for gnoclient, which can also be found in the official docs in the reference section.

@leohhhn
Copy link
Contributor

leohhhn commented Jun 26, 2024

@jefft0 Sorry for the delayed review.

This is definitely something that we want to have, but I see this as more of a reference page than a How-to guide. For it to be a how-to guide, it would need actual examples on how to, say, use RPC for Gno.land.

I do see value in having this one-pager as sort of an overview on the possibilities; we should put it under the Reference section, while making sure we include more things such as gno-js & tm2-js just like @zivkovicmilos mentioned. We could have this as a reference page, and then build out the separate how-to guides for each of the ways you can connect.

Also, we should think of a better title, and possibly not compare all things to gnokey/gnoweb, but simply have a general overview of each way of connecting. It would also be good to mention existing how-to guides/tutorials, such as for gnoclient.

@zivkovicmilos
Copy link
Member

@jefft0 did you get the chance to address the comments? 👀

Copy link

codecov bot commented Aug 20, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

📢 Thoughts on this report? Let us know!

…act-with-gnoland. Address comments.

Signed-off-by: Jeff Thompson <[email protected]>
@jefft0 jefft0 changed the title chore: Add how-to guide for how to interact with the chain without using Gnoweb or Gnokey chore: Add reference doc: Comparison of ways to communicate with Gno.land Aug 20, 2024
@jefft0
Copy link
Contributor Author

jefft0 commented Aug 20, 2024

@jefft0 did you get the chance to address the comments? 👀

@zivkovicmilos and @leohhhn, we believe that we addressed all your comments. Please check again. Note that it is now a new filename moved to the reference folder, so inline comments may not match now.

@Kouteki Kouteki added review/triage-pending PRs opened by external contributors that are waiting for the 1st review and removed review/triage-pending PRs opened by external contributors that are waiting for the 1st review labels Oct 3, 2024
@Gno2D2 Gno2D2 requested review from a team December 17, 2024 15:35
@Gno2D2
Copy link
Collaborator

Gno2D2 commented Dec 17, 2024

🛠 PR Checks Summary

🔴 Changes to 'docs' folder must be reviewed/authored by at least one devrel and one tech-staff

Manual Checks (for Reviewers):
  • IGNORE the bot requirements for this PR (force green CI check)
Read More

🤖 This bot helps streamline PR reviews by verifying automated checks and providing guidance for contributors and reviewers.

✅ Automated Checks (for Contributors):

🟢 Maintainers must be able to edit this pull request (more info)
🔴 Changes to 'docs' folder must be reviewed/authored by at least one devrel and one tech-staff
🟢 Pending initial approval by a review team member, or review from tech-staff

☑️ Contributor Actions:
  1. Fix any issues flagged by automated checks.
  2. Follow the Contributor Checklist to ensure your PR is ready for review.
    • Add new tests, or document why they are unnecessary.
    • Provide clear examples/screenshots, if necessary.
    • Update documentation, if required.
    • Ensure no breaking changes, or include BREAKING CHANGE notes.
    • Link related issues/PRs, where applicable.
☑️ Reviewer Actions:
  1. Complete manual checks for the PR, including the guidelines and additional checks if applicable.
📚 Resources:
Debug
Automated Checks
Maintainers must be able to edit this pull request (more info)

If

🟢 Condition met
└── 🟢 And
    ├── 🟢 The base branch matches this pattern: ^master$
    └── 🟢 The pull request was created from a fork (head branch repo: jefft0/gno)

Then

🟢 Requirement satisfied
└── 🟢 Maintainer can modify this pull request

Changes to 'docs' folder must be reviewed/authored by at least one devrel and one tech-staff

If

🟢 Condition met
└── 🟢 And
    ├── 🟢 The base branch matches this pattern: ^master$
    └── 🟢 A changed file matches this pattern: ^docs/ (filename: docs/reference/comparison-of-ways-to-interact-with-gnoland.md)

Then

🔴 Requirement not satisfied
└── 🔴 And
    ├── 🟢 Or
    │   ├── 🔴 Pull request author is a member of the team: tech-staff
    │   └── 🟢 At least 1 user(s) of the team tech-staff reviewed pull request(with state "APPROVED")
    └── 🔴 Or
        ├── 🔴 Pull request author is a member of the team: devrels
        └── 🔴 At least 1 user(s) of the team devrels reviewed pull request(with state "APPROVED")

Pending initial approval by a review team member, or review from tech-staff

If

🟢 Condition met
└── 🟢 And
    ├── 🟢 The base branch matches this pattern: ^master$
    └── 🟢 Not (🔴 Pull request author is a member of the team: tech-staff)

Then

🟢 Requirement satisfied
└── 🟢 If
    ├── 🟢 Condition
    │   └── 🟢 Or
    │       ├── 🟢 At least 1 user(s) of the organization reviewed the pull request (with state "APPROVED")
    │       ├── 🟢 At least 1 user(s) of the team tech-staff reviewed pull request
    │       └── 🔴 This pull request is a draft
    └── 🟢 Then
        └── 🟢 Not (🔴 This label is applied to pull request: review/triage-pending)

Manual Checks
**IGNORE** the bot requirements for this PR (force green CI check)

If

🟢 Condition met
└── 🟢 On every pull request

Can be checked by

  • Any user with comment edit permission

@thehowl thehowl requested a review from leohhhn December 18, 2024 11:56
@thehowl
Copy link
Member

thehowl commented Jan 16, 2025

ping @leohhhn @zivkovicmilos

Copy link
Contributor

@aeddi aeddi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpick: I find the addition very useful, but for a table/matrix of this kind, I would have preferred to provide it in text format (markdown) rather than as a jpg.
This allows for potentially seeing the diffs in the git history for future changes, easily modifying it, copying/pasting part or all of its content, displaying it in a terminal, etc.

@costinberty
Copy link

@aeddi thanks for thr remark to make the table in markdown format. I'm on it

@aeddi
Copy link
Contributor

aeddi commented Feb 5, 2025

Thank you @costinberty :)
FYI, it was just a suggestion, no worries if we merge without it.

@jefft0
Copy link
Contributor Author

jefft0 commented Feb 18, 2025

The linter CI says "go: ../misc/devdeps/go.mod requires go >= 1.23.0 (running go 1.22.10)" . I merged the latest from master, right after PR #3772 . But still got the linter error.

@jefft0
Copy link
Contributor Author

jefft0 commented Feb 18, 2025

The linter CI says "go: ../misc/devdeps/go.mod requires go >= 1.23.0 (running go 1.22.10)" . I merged the latest from master, right after PR #3772 . But still got the linter error.

Never mind. The linter CI check passes after merging master with PR #3773 .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Progress
Status: In Review
Development

Successfully merging this pull request may close these issues.

Add a documentation section on how to interact with the chain without using Gnoweb or Gnokey
8 participants