-
Notifications
You must be signed in to change notification settings - Fork 375
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
refactor: tm2 clean up against the latest main branch #1080
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Small comments, I'll be closing #825 and redirecting it to this one for clarity.
My 2c on what to do for pkg/crypto/keys/client
:
- move
HomeDir
to somewhere undergnovm
-pkg/util
?pkg/fsutil
?pkg/cliutil
?
(I likepkg/fsutil
) - make all the
newXCmd
functions exported, and allxCfg
.
Rationale: we want to separateaddpkg
andcall
from the rest, makingclient
a generic package to create tendermint 2 clients. This allows us to enable that. - Make
SignHandler
unexported (unclear to me why it's exported in the first place -- it's a bit useless as well becausesignCfg
is unexported). - Move
addpkg
andcall
to eithergnovm
orgno.land
.
If you think this is worth discussing more before deciding, we can go ahead with this one as manfred said in #825 and then tackle addpkg/call in another PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good 💯
I've left a minor comment just for discussion, since the dependency stuck out
High-level strategy regarding the splits:
Target
Potential intermediary state (not perfect, bug good enough, and flexible)
|
Should stay in
Yep, another related work is in progress regarding this package in #1047; the strategy was the same 👍
Yep
To |
Original text from #825
Description
Part of #692 #585
BREAKING CHANGE: In GitHub Action Flow, the build script needs to be updated on moving tm2txsync from tm2/cmd to gno.land/cmd
gno.land/
It provides information and tools necessary for running gno.land node. It includes
In the future, we plan to consolidate tools for node deployment and monitoring. The future plan also includes supporting both IBC and ICS.
gnovm/
Gnovm is agnostic to any SDK or chain.
It is intended for gno contract developers and gno VM developers. It includes
Future plans include making gnovm compatible with IBC
tm2/
Tendermint2 is a BFT consensus engine and a set of tools for blockchain builders
More details can be found at
https://github.com/tendermint/tendermint2#readme
In the future, tm2 plans to:
The dependences among tm2, gnovm and gno.land
Discussion
client commands
We aim to establish a clear dependency structure between these components as outlined earlier.
Ideally we'd like to have clear dependency between these components as listed above
At present, tm2/pkg/crypto/keys/client/root.go is dependent on gno.land/pkg/sdk/vm.
We're considering moving the following commands to gno.land/cmd/gnokey/ and eliminating the newMakeTxCmd() from cmd.AddSubCommands() in tm2/pkg/crypto/client/root.go:
However, these files rely on the private config structure and private methods defined in tm2/pkg/crypto/keys/client/. Until we decide the next steps, these files will remain in tm2, which means that tm2/ continues to depend on gno.lang/ for now.
genproto
As for the genproto, we need to decide where misc/genproto/genproto.go should be placed.
sample tendermint2 program
Since we've moved out applications that depend on gno in tm2, we need to consider whether we should reintroduce the sample tendermint application or create a new one.
tendermint classic main.go
Contributors' checklist...
BREAKING CHANGE: xxx
message was included in the description