Git Product home page Git Product logo

juno's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

juno's Issues

Seeds & Genesis.json

Couldn't find the seeds and genesis file.

We should make this easy and obvious, similar to Gaia's quickstart.

Note to validators

Hi,

I'm operating a relayer. If you are operating a validator, it is very important that you:

systemctl enable systemd-timesyncd

please.

If you do not, there are time drift errors, and well, the Hermes default of five seconds is really pretty generous.

Moneta Mainnet Release Checklist

In order to call the Moneta upgrade complete, we need to do the following:

- Gov prop to set block max gas #82
- Moneta alpha upgrade #71 #72
- Moneta beta upgrade #17 #85

~Once moneta is up, we will want to pin some contracts, to reduce their cost. This is via governance. ~

- Contract pinning gov prop

Some example contracts that might be pinned:

- DAODAO
- JunoMint
- Junoswap
- whoami
etc...

This will be followed by a final release:

- Replace wasmd fork with wasmd 0.21 when SDK 44 <-> wasmd is complete and audited


New working plan:

  • Gov prop to set block max gas #82
  • Test a single moneta upgrade that includes #71 #72 #17 #85 #90 and #95 on a testnet
  • Gov prop for moneta upgrade on mainnet
  • Do the single moneta upgrade on mainnet

Once moneta is up, we will want to pin some contracts. This is done via governance.

  • Contract pinning gov prop

Some example contracts that might be pinned:

  • DAODAO
  • JunoMint
  • Junoswap
  • whoami
  • CW20
  • CW721
    etc...

This will be followed by a final release:

  • Replace wasmd fork with wasmd 0.21 when SDK 44 <-> wasmd is complete and audited

Local CORS configuration

Improve dev ergonomics by allowing users to specify that the unsafe CORS option should be set for dev.

Enforce min gas fee for all transactions

Because smart contracts might use transaction information, we cannot just archive older chain states and start fresh.
So it might be good to have a minimum transaction fee. This would reduce spamming the chain with 0 fee transactions, thus filling up the chain state with useless transaction data.

Authz doesn't work with MsgVote

Overview

Specify the type of message through the authz module is generic --msg-type =/cosmos.gov.v1beta1.msgvote,Successful authorization, information can be checked.

The same command has been tested in Cosmos and Osmosis.

query grants

ubuntu@server:~$ junod query authz grants juno19gl3j8vvdq54dmh9yg8eu8tpykk7kynjqffx9p juno167rpuac44g9xwesuhfchc2epxr7dzkhpy3n92u
grants:
- authorization:
    '@type': /cosmos.authz.v1beta1.GenericAuthorization
    msg: /cosmos.gov.v1beta1.MsgVote
  expiration: "2023-04-28T10:25:10Z"
pagination:
  next_key: null
  total: "0"

generate tx

ubuntu@server:~$ junod tx gov vote 20 yes  --from juno19gl3j8vvdq54dmh9yg8eu8tpykk7kynjqffx9p --generate-only > tx.json

cat tx.json

ubuntu@server:~$ cat tx.json
{"body":{"messages":[{"@type":"/cosmos.gov.v1beta1.MsgVote","proposal_id":"20","voter":"juno19gl3j8vvdq54dmh9yg8eu8tpykk7kynjqffx9p","option":"VOTE_OPTION_YES"}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""}},"signatures":[]}

exec tx.json

ubuntu@server:~$ junod tx authz exec tx.json --from tiger --chain-id juno-1 --gas auto --gas-prices=0.0025ujuno --gas-adjustment=2.0
Enter keyring passphrase:
Error: rpc error: code = NotFound desc = rpc error: code = NotFound desc = account juno167rpuac44g9xwesuhfchc2epxr7dzkhpy3n92u not found: key not found
Usage:
  junod tx authz exec [msg_tx_json_file] --from [grantee] [flags]

keys list

ubuntu@iserver:~$ junod keys list
Enter keyring passphrase:
- name: tiger
  type: local
  address: juno167rpuac44g9xwesuhfchc2epxr7dzkhpy3n92u
  pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"A5r2D3Ta7001lyPRgctinI7PfAldvvlE7r2KWha1gsEO"}'
  mnemonic: ""

Add Slack app to repo

Hello.

We would like to get notifications of upcoming releases.

It would be a massive help if we could do it through Github's Slack integration.

Could you kindly install it?

Thank you

Contract submessages trigger msgRouter is nil panic

Full error:

Error: rpc error: code = InvalidArgument desc = failed to execute message; message index: 0: dispatch: submessages: >>> msgRouter is nil!!!: panic: invalid request

The bug is in the wasmd fork by the look of it.

  • v2.0.3 of juno does not have the issue.
  • v2.0.4 of juno and above does.

#126 does not have the issue, solved by rolling back those two dependencies. It turns out gas config costs have nothing to do with it.

Maitenance

Today I made several pull requests to Gaia for the purpose of maitenance, and I'd like to do the same for Juno.

I figured that before making them I might as well lay out a plan.

I'd like to:

  • use go module versions #206
  • bring all versions of juno fully up to date with the latest non-state breaking changes
  • use the common ecosystem convention of release branches
  • get real-world Juno performance benchmarks for pebbledb and rocksdb v7, including query benchmarks gitlab.com/cosmoscontracts

Set max gas limit on Mainnet

We should implement a gas limit like Terra. Kudos to @the-frey for this suggestion.

A gas limit will set an absolute maximum amount of gas a contract can use.

Can not starting th node

g crisis invariants inv=0/11 module=x/crisis name=distribution/nonnegative-outstanding
3:57PM INF asserting crisis invariants inv=1/11 module=x/crisis name=distribution/can-withdraw
3:57PM INF asserting crisis invariants inv=2/11 module=x/crisis name=distribution/reference-count
3:57PM INF asserting crisis invariants inv=3/11 module=x/crisis name=distribution/module-account
3:57PM INF asserting crisis invariants inv=4/11 module=x/crisis name=staking/module-accounts
3:57PM INF asserting crisis invariants inv=5/11 module=x/crisis name=staking/nonnegative-power
3:57PM INF asserting crisis invariants inv=6/11 module=x/crisis name=staking/positive-delegation
3:57PM INF asserting crisis invariants inv=7/11 module=x/crisis name=staking/delegator-shares
3:57PM INF asserting crisis invariants inv=8/11 module=x/crisis name=bank/nonnegative-outstanding
3:57PM INF asserting crisis invariants inv=9/11 module=x/crisis name=bank/total-supply
3:57PM INF asserting crisis invariants inv=10/11 module=x/crisis name=gov/module-account
3:57PM INF asserted all invariants duration=181.496891 height=0 module=x/crisis
panic: commission can't be lower than 5%: unauthorized

Consider a Bug Bounty program

Running CosmWasm in a permissionless state on a public blockchain, we should anticipate critical security vulnerabilities. While #124 provides some expectations about how disclosure happens, a bug bounty program can be helpful in guiding security researchers toward the official disclosure process; in effect, bug bounty programs make the risk-adjusted return of exploitation higher through the official channels than through crime.

As an example, Cosmos has a HackerOne program. We could consider something similar, and reserve some amount of the community pool to fund the program.

EVM

So I tested out the Stargate version of the EVM module yesterday.

Things went well!

It's my understanding that Ethereum 1.10.* much much faster than 1.9.* so I've been trying to get that in by default.

It's not done yet, seem to need to refactor the stuff that supports Access list.

GitHub.om/faddat/ethermint

It is in the latest-eth-sleepy branch.

Let me know what ya think :), any assistance with that is of course greatly appreciated.

Update Scaffold

Starport has been moving fast.

I'll shortly submit a PR that updates this to the latest scaffold.

5% minimum validator comission

This leads to a healthier network that is more difficult to capture, so I think we should get this in before cutting mainnet.

warning: 'SecTrustedApplicationCreateFromPath' is deprecated

I'm unable to verify junod installation on MacOS 10.15.7.

cgo-gcc-prolog:203:11: warning: 'SecTrustedApplicationCreateFromPath' is deprecated: first deprecated in macOS 10.15 - No longer supported [-Wdeprecated-declarations]
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Security.framework/Headers/SecTrustedApplication.h:59:10: note: 'SecTrustedApplicationCreateFromPath' has been explicitly marked deprecated here

Screen Shot 2021-11-23 at 11 43 44 PM

Add CosmWasm v1 to Juno

NB: Moneta is the name of the mainnet release that will include CW. In semver, it will be Juno 2.0.0

Tasks:

  • Add CosmWasm to Juno
  • Test it locally

Inflation module

Need to develop a custom minting/inflation module that fit juno tokenomics details

installation error: 'kIOMasterPortDefault' is deprecated: first deprecated in macOS 12.0 [-Wdeprecated-declarations]

Hello everyone, I tried installing juno on my mac it runs on macOS Monterey 12.0 and when run the make command I get the following error:

In file included from ../../go/pkg/mod/github.com/zondax/[email protected]/hid_enabled.go:38: ../../go/pkg/mod/github.com/zondax/[email protected]/hidapi/mac/hid.c:693:34: warning: 'kIOMasterPortDefault' is deprecated: first deprecated in macOS 12.0 [-Wdeprecated-declarations] /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/IOKit.framework/Headers/IOKitLib.h:123:19: note: 'kIOMasterPortDefault' has been explicitly marked deprecated here

SPM Bad

https://github.com/tendermint/spm

Is a module that juno currently imports. It is bad. The reason is bad is that our stack is no longer in our repository and this causes maintenance nightmare.

Update cosmos-sdk and tendermint

NB: Moneta is the name of the mainnet release that will include CW. In semver, it will be Juno 2.0.0

Tasks:

  • Update the Cosmos SDK to v44.2

Potentially already covered by: #57 & #54

Better automated cw testing

Let's kill it a million times, till it becomes immortal.

(I will use this as a tracking issue for work on cw pre-moneta.)

Error executing Wasm - execute wasm contract failed

Hello, i'm deploying a smart-contract on testnet, and I'm having an issue

failed to execute message; message index: 0:

Error calling the VM: Error executing Wasm: Wasmer runtime error: RuntimeError: unreachable: execute wasm contract failed" module=state

you can see the failed tx here: https://testnet.mintscan.io/juno-testnet/txs/9C349F2652861BB1B10A059B4F47B2861F9135753E0F4AA6B637E632014FABCB

Here are the debug logs on my localnet:

github.com/CosmWasm/wasmd/x/wasm/keeper.Keeper.execute
github.com/CosmWasm/[email protected]/x/wasm/keeper/keeper.go:355
github.com/CosmWasm/wasmd/x/wasm/keeper.PermissionedKeeper.Execute
github.com/CosmWasm/[email protected]/x/wasm/keeper/contract_keeper.go:50
github.com/CosmWasm/wasmd/x/wasm/keeper.msgServer.ExecuteContract
github.com/CosmWasm/[email protected]/x/wasm/keeper/msg_server.go:93
github.com/CosmWasm/wasmd/x/wasm/types._Msg_ExecuteContract_Handler.func1
github.com/CosmWasm/[email protected]/x/wasm/types/tx.pb.go:784
github.com/cosmos/cosmos-sdk/baseapp.(*MsgServiceRouter).RegisterService.func2.1
github.com/cosmos/[email protected]/baseapp/msg_service_router.go:113
github.com/CosmWasm/wasmd/x/wasm/types._Msg_ExecuteContract_Handler
github.com/CosmWasm/[email protected]/x/wasm/types/tx.pb.go:786
github.com/cosmos/cosmos-sdk/baseapp.(*MsgServiceRouter).RegisterService.func2
github.com/cosmos/[email protected]/baseapp/msg_service_router.go:117
github.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).runMsgs
github.com/cosmos/[email protected]/baseapp/baseapp.go:720
github.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).runTx
github.com/cosmos/[email protected]/baseapp/baseapp.go:677
github.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).DeliverTx
github.com/cosmos/[email protected]/baseapp/abci.go:276
github.com/tendermint/tendermint/abci/client.(*localClient).DeliverTxAsync
github.com/tendermint/[email protected]/abci/client/local_client.go:93
github.com/tendermint/tendermint/proxy.(*appConnConsensus).DeliverTxAsync
github.com/tendermint/[email protected]/proxy/app_conn.go:85
github.com/tendermint/tendermint/state.execBlockOnProxyApp
github.com/tendermint/[email protected]/state/execution.go:320
github.com/tendermint/tendermint/state.(*BlockExecutor).ApplyBlock
github.com/tendermint/[email protected]/state/execution.go:140
github.com/tendermint/tendermint/consensus.(*State).finalizeCommit
github.com/tendermint/[email protected]/consensus/state.go:1638
github.com/tendermint/tendermint/consensus.(*State).tryFinalizeCommit
github.com/tendermint/[email protected]/consensus/state.go:1547
github.com/tendermint/tendermint/consensus.(*State).enterCommit.func1
github.com/tendermint/[email protected]/consensus/state.go:1482
github.com/tendermint/tendermint/consensus.(*State).enterCommit
github.com/tendermint/[email protected]/consensus/state.go:1520
github.com/tendermint/tendermint/consensus.(*State).addVote
github.com/tendermint/[email protected]/consensus/state.go:2135
github.com/tendermint/tendermint/consensus.(*State).tryAddVote
github.com/tendermint/[email protected]/consensus/state.go:1933
github.com/tendermint/tendermint/consensus.(*State).handleMsg
github.com/tendermint/[email protected]/consensus/state.go:839
github.com/tendermint/tendermint/consensus.(*State).receiveRoutine
github.com/tendermint/[email protected]/consensus/state.go:783

failed to execute message; message index: 0:

Error calling the VM: Error executing Wasm: Wasmer runtime error: RuntimeError: unreachable: execute wasm contract failed" module=state

Does anyone had this issue ?

State sync crashed

3:40PM INF Applied snapshot chunk to ABCI app chunk=34 format=1 height=2425000 module=statesync total=35
3:40PM INF Verified ABCI app appHash="��C�<l\x15�M��'��q�;�\x16\x05�|2���A�\x17��x" height=2425000 module=statesync
3:40PM INF Snapshot restored format=1 hash="Px^Y+S�\x1f�X�\x1a�W>�n\x01h᯿r,\x10s����\"�" height=2425000 module=statesync
3:40PM INF Starting BlockPool service impl=BlockPool module=blockchain
3:40PM INF minted coins from module account amount=5142792ujuno from=mint module=x/bank
3:40PM INF executed block height=2425001 module=state num_invalid_txs=0 num_valid_txs=0
3:40PM INF commit synced commit=436F6D6D697449447B5B35302037362032382031373420313233203130342036312037372031333020323339203133382031333120313430203232352031313420333820323520353020323438203538203235203138382031393120323334203939203233362033342031373620313820313637203137392037345D3A3235303041397D
3:40PM INF committed state app_hash=324C1CAE7B683D4D82EF8A838CE172261932F83A19BCBFEA63EC22B012A7B34A height=2425001 module=state num_txs=0
3:40PM INF indexed block height=2425001 module=txindex

...

3:40PM INF executed block height=2425002 module=state num_invalid_txs=3 num_valid_txs=17
3:40PM INF commit synced commit=436F6D6D697449447B5B313537203133302031323020313834203136312033322031343120313220313832203136372036382036332032333120323338203831203234392037352031353520353020343720373520323337203135352037362031343920393520333320313333203234382031353320323036203232315D3A3235303041417D
3:40PM INF committed state app_hash=9D8278B8A1208D0CB6A7443FE7EE51F94B9B322F4BED9B4C955F2185F899CEDD height=2425002 module=state num_txs=20
3:40PM INF indexed block height=2425002 module=txindex
panic: Failed to process committed block (2425003:47C9A3DD169701894478B9061D8DBD9D12BFC39FD32111B6B731B4BE5AFBB9C3): wrong Block.Header.AppHash.  Expected 9D8278B8A1208D0CB6A7443FE7EE51F94B9B322F4BED9B4C955F2185F899CEDD, got 1C57CEE2170211ECEAC9AE5461AB7CE3AA86E77EA1BD92449DF600BC84C73D0E

goroutine 666 [running]:
github.com/tendermint/tendermint/blockchain/v0.(*BlockchainReactor).poolRoutine(0xc0001d4540, 0x1)
	github.com/tendermint/[email protected]/blockchain/v0/reactor.go:401 +0x123a
created by github.com/tendermint/tendermint/blockchain/v0.(*BlockchainReactor).SwitchToFastSync
	github.com/tendermint/[email protected]/blockchain/v0/reactor.go:125 +0xe5

Both sides are using the same version:

~/go/bin/junod version --long
name: juno
server_name: junod
version: v2.1.0
commit: e6b8c212b178cf575035065b78309aed547b1335
build_tags: netgo,ledger
go: go version go1.18 linux/amd64

Seperation of normal TX from Contract Deployment TX

There seems to be the potential that someone could set up a validator, set the upload fee to 0 (or cheap) and then after the spam uploading of bulk contracts happen, they could shut down their validator and move on (not have to deal with the shared load of storage costs.

I am trying to figure out if having a separate cost structure for the TX and the Contract Deployment transaction might be beneficial to avoid this. For the Contract Deployment transaction the validators could somehow agree on a shared minimum amount per contract byte size? This might prevent renegade spam validators from emerging?

Build and Deploy CI is broken

More as a note to self to fix this later, but we've got a broken window, and leaving it red will result in us missing stuff that actually is important before long.

Change documentation to reflect new tags for juno 2.0.0

There are a few places in the docs (not related to testnets), e.g. in Smart Contracts dev section refer to known working versions of Juno.

Once the new binary is ready and tagged, this will need updating.

Adding this ticket here as it's easier to track as part of this piece of work.

Tasks:

  • Update mentions of v1.0.0 git tag in the docs to the new binary tag
  • Update mentions of the chain-id being the same as the git tag or still being lucina

Set upload fees for contracts higher

It should cost more to upload a contract. I believe there is already a parameter for this? Let's update it on the Uni testnet.

If there is not a parameter, we should add this feature. Transactions should be cheap, but uploading a contract should be expensive.

arm64

It's a stretch, but I'd be remiss not to create an issue here so that at some point, we get this hammered out.

CosmWasm/wasmvm#53

Upgrade SDK to .44

Upgrade when also supported with wasm v1.
Is the issue with 43 also with 42?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.