Search Apps Documentation Source Content File Folder Download Copy

The More You Gno 9: Realm to Realm Interaction, Faucet Hub, New Test4 Launch Date and More

This edition brings several major pieces of news; Gno Studio Connect beta, and Faucet Hub. We're moving up the Test4 launch by 2 weeks, so we could get to mainnet faster. We'll also be seeing each other at GopherCons EU and US, so make sure to stop by and say hi! Oh, and our new gnome logo is live!

We're also covering all the major and minor code improvements; if you want to dive deeper, we have the weekly engineering updates and video recordings available.

Gno Core Updates

Introducing Gno Studio Connect

Last month we talked about the need for a premier builder suite for Gno.land. As Gno.land expands into a universe of realms, we saw the need for a set of tools; tools empowing the community to create and use succint and composable realms on Gno.land. Last year we launched Gno Playground. Now we're adding another tool to the toolbox - Gno Studio Connect. Currently in beta, Connect allows seamless access to realms, making it simple to explore, interact, and engage with Gno.land's smart contracts through function calls. Try out your first realm interaction via Connect by taking our gnoyourdate poll.

Faucet Hub is Live

With the Faucet Hub you can now easily and effortlessly use all Gno.land ecosystem faucets, including Portal Loop, staging, future testnets and implementation partner chains. It's easily extensible, with the goal of having a single stop for every possible Gno.land test token you might need.

Test4 Launch Scheduled for July 15

After announcing the tentative Test4 launch for the end of July/early August, we realized we're working faster than anticipated. That's why we're moving the official Test4 launch to July 15, 2024!

550 TPS

Recent supernova tests showed that we have ~550 TPS on a single node machine (M3 Mac; 100k txs, 1s block time). This is a huge step up from last year, when the TPS performance we had varied from 7-20 TPS with the same setup.

New DevOps team member

Please welcome Sergio Matone! A DevOps with a strong Go background, he'll be a key player in improving and managing the Gno.land infrastructure.

Belgrade Retreat

The core team travelled from across the world to Belgrade, Serbia, where we hunkered down and solved a number of issues blocking Test4 as well as future releases all the way to the mainnet. Full recap here.

Changelog

  • Dropped support for all unused DB implementations, apart from leveldb and boltdb. Without excessive DB implementations that need maintaining, we can focus on optimizing the ones we actually use, and squeeze out performance from systems we already have.

  • Resolved a Long Standing CI Issue With BFT Tests. The CI is finally green across the board. We still have some flaky tests, but the CI will no longer constantly fail on the BFT CI due to irregular channel usage. This, couple with our CI rework over the past month, significantly improved our GitHub development process.

  • Lots of spring cleaning efforts with gnokey, gnoland, and our other tools. We took this chance to also add extensive coverage and regression tests, in case they were missing before.

  • Finally merged in Event / Emit support in Gno! Users and Gno clients can finally fetch on-chain events as soon as they happen, and have a rich context for them as well. Support for these has already been propagated to our tx-indexer.

  • Merged in the VM gas consumption fixes, which standardize VM gas usage across the board for users. Having predictable gas costs, and gas costs that take into account VM operations is only fair for both the node operators and the chain users.

  • Reworked the node directory structure, and made genesis.json usage explicit, paving the way to an easier multinode future. This effort enables us to easily orchestrate and configure Gno blockchain nodes, especially with the upcoming devnet / testnet launch.

  • Overhauled our monorepo GH actions, with them now avoiding double-work, and being much snappier. CI for PRs now runs much quicker and more stable, due to these optimizations.

  • Finished migration to Goreleaser. All of our important tools and binaries have a clear build and release schedule (for Docker, and beyond!), with us implementing nightly, dev and master releases on the monorepo.

  • Bumped the gnovm test coverage from ~34% to ~67%. With upcoming changes to the GnoVM, we needed a good safety net in the form of a testing suite that will alert us if funny business is going on after a change.

  • Many, many bug fixes, small UX improvements and QoL changes that keep the lights on and systems running smoothly.

Ecosystem Updates

Onbloc

Multinode/Validator Docs: https://github.com/gnolang/gno/pull/2285 2. test4 Validator Initiative Discussion: https://github.com/gnolang/hackerspace/issues/69 3. GnoSwap Portal Loop Migration Blocker: https://github.com/gnolang/gno/issues/2283 - Liquidity Pool realm deployment failing on portal-loop - Attempts tried: - Changing package path / reducing realm size / setting gax-wanted to max / changing client env - Cloning gno repo every single recent commit to re-produce on local but never failed. - Update: Potential cause → Certain failing txs are causing corrupt cache files cacheNodes

Teritori

  • GnoVM

    • Add stacktrace functionality and replace some uses of Machine.String: This pull request is currently in review discussions with Morgan (PR #2145).
    • Go2Gno loses type info: This issue is Merged (PR #2016).
    • Avoid instantiation of banker on pure package: This change is awaiting review and merge (PR #2248).
    • Missing length check in value declaration: This pull request is also awaiting review and merge (PR #2206).
    • Issue: File line not set on ValueDeclr, ImportDecl, TypeDecl: The issue has been resolved and closed (Issue #2220).
    • File line not set on ValueDeclr, ImportDecl, TypeDecl: The fix has been successfully merged (PR #2221).
  • Gno lint

    • Printing all the errors from goparser: This pull request has been successfully merged (PR #2011).
    • Lint all files in folder before panicking: This pull request is awaiting review and merge (PR #2202).
  • DAO SDK (still waiting for review) PR: #1925

  • GnoVM

    • Cannot use struct as key of a map: We resolved the issue where structs couldn't be used as keys in maps. This PR has been merged (PR #2044).
    • Go2Gno loses type info: This issue is still awaiting review and merge (PR #2016).
    • Gno Issue with pointer: We proposed a solution (Issue #2060).
    • Stacktrace functionality: We added stacktrace functionality and replaced some uses of Machine.String (PR #2145).
    • Recover not working correctly with runtime panics: We created an issue to address this problem (Issue #2146).
    • Panic when adding a package with subpaths: We worked on this issue and waiting for review and merge PR #2155).
  • Gno lint

    • Printing all the errors from goparser: This improvement is waiting for review and merge (PR #2011).
  • DAO SDK

    • DAO SDK: Waiting Review and merge: PR #1925.
  • Project Manager Since we have already a lot in review, before opening a PR on the Gno repo, we're taking time to:

    • Polish the "private" atomic PR
    • Polish the UI
    • Set-up e2e testing with gnodev and a gno-js-client wallet, you can see a demo recording here, the end-goal is to run e2e tests in CI

Dragos

ZenTasktic

  • Zentasktic User (3rd grant milestone) implemented: https://github.com/irreverentsimplicity/zentasktic-user

    • updated docs for all 3 projects: - https://github.com/irreverentsimplicity/zentasktic-core/blob/main/README.md - https://github.com/irreverentsimplicity/zentasktic-project/blob/main/README.md - https://github.com/irreverentsimplicity/zentasktic-user/blob/main/README.md
  • zentasktic (the package)

    • big overhaul, allowing for keeping the Assess-Decide-Do logic on the zentasktic package, but save the data locally, in the realm importing the package. PR here with some more explanation: https://github.com/irreverentsimplicity/zentasktic-core/pull/1
  • zentasktic-project (the realm)

    • backend finished, repo here: https://github.com/irreverentsimplicity/zentasktic-project
    • question: test failing on RemoveWorkDuration with panic: reflect: reflect.Value.SetString using value obtained using unexported field on WorkDuration? AddWorkDuration and EditWorkDuration tests are passing...

Flippando

  • hackerville.xyz website updated for the upcoming airdrop: https://hackerville.xyz
  • airdrop script in testing
  • flippando NFT airdrop
    • copy added to the main flippando website, with airdrop mechanics and due date: https://gno.flippando.xyz/airdrop
    • minor updates to the website in preparation for this (airdrop mode: https://gno.flippando.xyz/playground)
    • spoiler, it will be on June 8th (2024, for conformity)

Berty

  • tx-indexer genesis PR34 (related to PR1941? ) / Jeff

    • blank screen bug fixed
  • dSocial latest features / Iuri

    • reply to a post
    • view other user's posts
    • others
  • UI conversation with Alexis - to plan soon

  • dSocial demo app

    • Released on Test Flight and Google Play
    • To get an invitation, send your email to Iuri on Signal. Please say if you have an iPhone or Android phone.
    • Using custom indexer on the Berty production server
  • Stress testing

    • Finalizing report
    • What is the PR to watch for resolving https://github.com/gnolang/gno/issues/1577 ?
      • Referenced PR https://github.com/gnolang/gno/issues/1576
    • Comment on CodeMagic as a possibility

Var Meta

  • issue: https://github.com/gnolang/gno/issues/2053 PR: https://github.com/gnolang/gno/pull/2108 Des: limit import path length Status: Merged

  • issue: https://github.com/gnolang/gno/issues/2192 PR: https://github.com/gnolang/gno/pull/2242 Des: Restric the maketx call function can only call to a realm Status: Merged

  • issue: https://github.com/gnolang/gno/issues/1998 PR: https://github.com/gnolang/gno/pull/2149 Des: This PR defines a GasUsed() func and a defaultInvokeCost in gas within std package. Simple feature let realm developer know the gas used at the time function is called. Status: Wait for reviewing

  • ISSUE: New issue about GnoPlayGround RUN and TEST func in different browsers (safari, chrome) Link: https://github.com/gnolang/gno/issues/2270 Status: NO PR is made, waiting core team

  • WIP: Sponsor TX PR: https://github.com/gnolang/gno/pull/2209 Des: This PR aims to facilitate a transaction that should have been from A(signer) to B(Address/Realm) (A would pay the gas fee). Instead, A will delegate C(signer) to sign the transaction from A to B (C will pay the gas fee). Status: Under reviewing

  • PR: https://github.com/gnolang/gno/pull/2249 Issue: https://github.com/gnolang/gno/issues/2232 Des: To consolidate our returns on gnokey queries, I propose that we make them return JSON strings Status: Waiting for #1776 to be merged

  • PR: https://github.com/gnolang/gno/pull/2198 Issue: https://github.com/gnolang/gno/issues/2193 Des: Propose refactoring p/ownable from a struct with a specific implementation to a more minimal interface, allowing for custom ownership logic while retaining the current struct as the default implementation. Status: Waiting for reviewing

  • PR: https://github.com/gnolang/gno/pull/2225 Issue: https://github.com/gnolang/gno/issues/2193 Des: I propose integrating certain utility smart contracts from Ethereum into Gnoland. Now i'm working on defining the Bitmap, NonceManager and Queue packages, which can provide essential functionality for the Gnoland ecosystem. Status: Waiting for reviewing

  • PR: https://github.com/gnolang/gno/pull/2234 Issue: https://github.com/gnolang/gno/issues/2231 Des: We should either implement this, or remove the flag until the functionality is implemented. Same goes for the –prove flag. Status: Merged

  • PR:

    • Support extensions like Metadata, RoyaltyInfo for GRC721 https://github.com/gnolang/gno/pull/1962 (Merged)
    • Deprecate & remove std.CurrentRealmPath() https://github.com/gnolang/gno/pull/2087 (Reviewing)
    • limit package path length https://github.com/gnolang/gno/pull/2108 (Aprroved)
    • Implement Bitmap package https://github.com/gnolang/gno/pull/2115 (Need review)
    • Implement Nonces package https://github.com/gnolang/gno/pull/2123 (Need review)
    • GasUsed() for GnoVM std https://github.com/gnolang/gno/pull/2149
  • Issues:

    • Panic when getting keypair information https://github.com/gnolang/gno/issues/2133
    • Proposal: Integrate Sponsor Mechanism for Transaction Fees https://github.com/gnolang/gno/issues/2152

Student Contributor Program

Mustapha

Contributors

  • Antonio
    • GNOWLEDGE: A realm to simulate a Stackoverflow styled. Sharing to get some feedback. You can check it out via https://github.com/iam-agf/Gnowledge-website
    • Shiken Project repositories

New Content

Events and Meetups

Past events

  • GoLang Serbia Meetup / Belgrade / May 23. We used the Gno core team's retreat in Belgrade to connect with the local Go developers and possible contributors over the next few months to build the ecosystem. Full recap.
  • We're currently wrapping up GopherCon EU in Berlin, expect an update soon!

Upcoming events

  • GopherCon US / Chicago / July 7th - 10th
  • Nebular Summit / Brussels / July 12th/13th

Discord Developer Office Hours

Every week on Thursday at 2:30 pm CEST, we host office hours on Discord to answer questions, discuss updates, and catch up with the community. We'd love to see you there!


Tags: #gnoland #ecosystem #updates #gnovm #tm2 #test4 #gnostudio #connect

Written by Kouteki on 20 Jun 2024

Published by g125em6arxsnj49vx35f0n0z34putv5ty3376fg5 to gno.land's blog