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

feat: add r/sys/params + params genesis support #3003

Merged
merged 90 commits into from
Nov 12, 2024

Conversation

moul
Copy link
Member

@moul moul commented Oct 22, 2024

Depends on #2920
Depends on #3003 (cherry-picked)
Blocking #2911

moul added 28 commits October 11, 2024 09:47
Signed-off-by: moul <[email protected]>
Signed-off-by: moul <[email protected]>
Signed-off-by: moul <[email protected]>
Signed-off-by: moul <[email protected]>
Signed-off-by: moul <[email protected]>
Signed-off-by: moul <[email protected]>
Signed-off-by: moul <[email protected]>
Signed-off-by: moul <[email protected]>
Signed-off-by: moul <[email protected]>
Signed-off-by: moul <[email protected]>
Signed-off-by: moul <[email protected]>
Signed-off-by: moul <[email protected]>
Signed-off-by: moul <[email protected]>
@moul moul self-assigned this Oct 22, 2024
@github-actions github-actions bot added the 📦 ⛰️ gno.land Issues or PRs gno.land package related label Oct 22, 2024
@moul moul assigned zivkovicmilos and unassigned moul Nov 8, 2024
thehowl added a commit that referenced this pull request Nov 8, 2024
Note: I'm uncertain about what will happen after the merge.

Fixes #3085 
Addresses #3003

---------

Signed-off-by: moul <[email protected]>
Co-authored-by: Morgan <[email protected]>
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.

Overall it looks good 💯

I've left a few questions to better understand the dynamics between the Params Keeper and the std API 🙏

gno.land/pkg/gnoland/genesis.go Outdated Show resolved Hide resolved
gno.land/pkg/gnoland/genesis.go Show resolved Hide resolved
gno.land/pkg/gnoland/param.go Show resolved Hide resolved
gno.land/pkg/gnoland/param.go Show resolved Hide resolved
gno.land/pkg/gnoland/param.go Outdated Show resolved Hide resolved
gno.land/pkg/gnoland/param.go Show resolved Hide resolved
examples/gno.land/r/sys/params/params.gno Show resolved Hide resolved
examples/gno.land/r/sys/params/params.gno Show resolved Hide resolved
@zivkovicmilos zivkovicmilos merged commit 36cdadb into gnolang:master Nov 12, 2024
134 checks passed
// each param is in the form: key.kind=value
content := osm.MustReadFile(path)

m := map[string] /*category*/ map[string] /*key*/ map[string] /*kind*/ interface{} /*value*/ {}
Copy link
Member

Choose a reason for hiding this comment

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

type Category, Key, Kind = string, string, string

map[Category]map[Key]map[Kind]interface{}

@Kouteki Kouteki removed the in focus Core team is prioritizing this work label Nov 17, 2024
moul added a commit that referenced this pull request Dec 6, 2024
Introducing the concept of "ChainDomain," a local primary domain for
packages.

The next step, which will be another PR, is to ensure that we can launch
a gnoland/gnodev instance while importing a local folder or using a
genesis to preload packages from other domains. This will allow users to
add packages only to the primary domain while accessing packages from
multiple domains. The result will be a preview of the upcoming IBC era,
where a single chain can add packages only to its domain but can fetch
missing dependencies from other registered zones.

- [x] gnovm unaware of gno.land, just accepting valid domains
- [x] vmkeeper initialized with a domain
- [x] Stdlib to know the current primary domain + new std.ChainDomain
- [x] new unit tests around custom domains

Depends on #2910 
Depends on #3003
Blocks a new PR that will add multidomain support.
Related with
#2904 (comment)

---------

Signed-off-by: moul <[email protected]>
Co-authored-by: n0izn0iz <[email protected]>
Co-authored-by: Mikael VALLENET <[email protected]>
Co-authored-by: Morgan <[email protected]>
omarsy pushed a commit to TERITORI/gno that referenced this pull request Dec 7, 2024
Introducing the concept of "ChainDomain," a local primary domain for
packages.

The next step, which will be another PR, is to ensure that we can launch
a gnoland/gnodev instance while importing a local folder or using a
genesis to preload packages from other domains. This will allow users to
add packages only to the primary domain while accessing packages from
multiple domains. The result will be a preview of the upcoming IBC era,
where a single chain can add packages only to its domain but can fetch
missing dependencies from other registered zones.

- [x] gnovm unaware of gno.land, just accepting valid domains
- [x] vmkeeper initialized with a domain
- [x] Stdlib to know the current primary domain + new std.ChainDomain
- [x] new unit tests around custom domains

Depends on gnolang#2910
Depends on gnolang#3003
Blocks a new PR that will add multidomain support.
Related with
gnolang#2904 (comment)

---------

Signed-off-by: moul <[email protected]>
Co-authored-by: n0izn0iz <[email protected]>
Co-authored-by: Mikael VALLENET <[email protected]>
Co-authored-by: Morgan <[email protected]>
Villaquiranm pushed a commit to Villaquiranm/gno that referenced this pull request Dec 9, 2024
Introducing the concept of "ChainDomain," a local primary domain for
packages.

The next step, which will be another PR, is to ensure that we can launch
a gnoland/gnodev instance while importing a local folder or using a
genesis to preload packages from other domains. This will allow users to
add packages only to the primary domain while accessing packages from
multiple domains. The result will be a preview of the upcoming IBC era,
where a single chain can add packages only to its domain but can fetch
missing dependencies from other registered zones.

- [x] gnovm unaware of gno.land, just accepting valid domains
- [x] vmkeeper initialized with a domain
- [x] Stdlib to know the current primary domain + new std.ChainDomain
- [x] new unit tests around custom domains

Depends on gnolang#2910 
Depends on gnolang#3003
Blocks a new PR that will add multidomain support.
Related with
gnolang#2904 (comment)

---------

Signed-off-by: moul <[email protected]>
Co-authored-by: n0izn0iz <[email protected]>
Co-authored-by: Mikael VALLENET <[email protected]>
Co-authored-by: Morgan <[email protected]>
r3v4s pushed a commit to gnoswap-labs/gno that referenced this pull request Dec 10, 2024
- [x] add `r/sys/params`
- [x] add `genesis/genesis_params.toml`
- [x] port some existing configurations
- [x] open issue: add LRU lazy caching with instant invalidation using a
transient store (gnolang#3023)

Depends on gnolang#2920 
Depends on gnolang#3003 (cherry-picked)
Blocking gnolang#2911

---------

Signed-off-by: moul <[email protected]>
Co-authored-by: Morgan <[email protected]>
r3v4s pushed a commit to gnoswap-labs/gno that referenced this pull request Dec 10, 2024
Introducing the concept of "ChainDomain," a local primary domain for
packages.

The next step, which will be another PR, is to ensure that we can launch
a gnoland/gnodev instance while importing a local folder or using a
genesis to preload packages from other domains. This will allow users to
add packages only to the primary domain while accessing packages from
multiple domains. The result will be a preview of the upcoming IBC era,
where a single chain can add packages only to its domain but can fetch
missing dependencies from other registered zones.

- [x] gnovm unaware of gno.land, just accepting valid domains
- [x] vmkeeper initialized with a domain
- [x] Stdlib to know the current primary domain + new std.ChainDomain
- [x] new unit tests around custom domains

Depends on gnolang#2910 
Depends on gnolang#3003
Blocks a new PR that will add multidomain support.
Related with
gnolang#2904 (comment)

---------

Signed-off-by: moul <[email protected]>
Co-authored-by: n0izn0iz <[email protected]>
Co-authored-by: Mikael VALLENET <[email protected]>
Co-authored-by: Morgan <[email protected]>
albttx pushed a commit that referenced this pull request Jan 10, 2025
Introducing the concept of "ChainDomain," a local primary domain for
packages.

The next step, which will be another PR, is to ensure that we can launch
a gnoland/gnodev instance while importing a local folder or using a
genesis to preload packages from other domains. This will allow users to
add packages only to the primary domain while accessing packages from
multiple domains. The result will be a preview of the upcoming IBC era,
where a single chain can add packages only to its domain but can fetch
missing dependencies from other registered zones.

- [x] gnovm unaware of gno.land, just accepting valid domains
- [x] vmkeeper initialized with a domain
- [x] Stdlib to know the current primary domain + new std.ChainDomain
- [x] new unit tests around custom domains

Depends on #2910 
Depends on #3003
Blocks a new PR that will add multidomain support.
Related with
#2904 (comment)

---------

Signed-off-by: moul <[email protected]>
Co-authored-by: n0izn0iz <[email protected]>
Co-authored-by: Mikael VALLENET <[email protected]>
Co-authored-by: Morgan <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
📦 🌐 tendermint v2 Issues or PRs tm2 related 📦 ⛰️ gno.land Issues or PRs gno.land package related 📦 🤖 gnovm Issues or PRs gnovm related 🧾 package/realm Tag used for new Realms or Packages.
Projects
Status: Done
Status: ✅ Done
Development

Successfully merging this pull request may close these issues.

5 participants