cosmoscontracts / juno Goto Github PK
View Code? Open in Web Editor NEWOpen Source Platform for Interoperable Smart Contracts
License: Apache License 2.0
Open Source Platform for Interoperable Smart Contracts
License: Apache License 2.0
Patch version is out, we need to bump version and upgrade https://github.com/CosmWasm/wasmvm
Seems to me that this release is well worth waiting for:
https://github.com/cosmos/cosmos-sdk/releases/tag/v0.43.0-rc0
Couldn't find the seeds and genesis file.
We should make this easy and obvious, similar to Gaia's quickstart.
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.
The Readme.md file should provide exact directions on how to state sync a juno node.
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
moneta
upgrade that includes #71 #72 #17 #85 #90 and #95 on a testnetmoneta
upgrade on mainnetmoneta
upgrade on mainnetOnce moneta is up, we will want to pin some contracts. This is done via governance.
Some example contracts that might be pinned:
This will be followed by a final release:
Needs a release tag
Improve dev ergonomics by allowing users to specify that the unsafe CORS option should be set for dev.
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.
It is shorter since v2.0.3
-> we need to increase in order to be forwards compatible with mainline.
Terse ticket for now. Let's discuss fix and upgrade path.
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.
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"
ubuntu@server:~$ junod tx gov vote 20 yes --from juno19gl3j8vvdq54dmh9yg8eu8tpykk7kynjqffx9p --generate-only > 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":[]}
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]
ubuntu@iserver:~$ junod keys list
Enter keyring passphrase:
- name: tiger
type: local
address: juno167rpuac44g9xwesuhfchc2epxr7dzkhpy3n92u
pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"A5r2D3Ta7001lyPRgctinI7PfAldvvlE7r2KWha1gsEO"}'
mnemonic: ""
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
Recent version here: https://github.com/CosmosContracts/testnets/blob/main/juno-testnet-7/genesis.json
When it's run it throws an error:
panic: invariant broken: bank: total supply invariant
sum of accounts coins: 72819737204316ujuno
supply.Total: 52819737204316ujuno
Update to wasm v1 when it is released for production by the Confio team
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.
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:
Can you provide an RPC URL for the Juno public node ?
修改翻译结果
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.
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
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.
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.
was moved to starport repo https://github.com/tendermint/spm
Let's upgrade.
Starport has been moving fast.
I'll shortly submit a PR that updates this to the latest scaffold.
There is a cosmos sdk gosec tool - could be good to have it as part of CI
This leads to a healthier network that is more difficult to capture, so I think we should get this in before cutting mainnet.
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
At the moment there is only latest
AFAICT
https://github.com/CosmosContracts/juno/pkgs/container/juno
Would be nice if this was created in such a way that tags were applied that match releases, for dev purposes
NB: Moneta is the name of the mainnet release that will include CW. In semver, it will be Juno 2.0.0
Tasks:
Querying pinned contracts doesn't work:
$ junod query wasm pinned
Error: error unmarshalling: invalid character '<' looking for beginning of value
This may be an upstream issue in wasmd.
Need to develop a custom minting/inflation module that fit juno tokenomics details
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
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.
NB: Moneta is the name of the mainnet release that will include CW. In semver, it will be Juno 2.0.0
Tasks:
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.)
Disable CosmWasm module for mainnet
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 ?
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
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?
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.
wasmd
supports latest Cosmos SDK: https://github.com/cosmwasm/wasmd
Let's make the switch.
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:
v1.0.0
git tag in the docs to the new binary tagchain-id
being the same as the git tag or still being lucina
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.
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.
Nice for testing, scripting, etc.
Should only be for major mainnet releases IMO.
Upgrade when also supported with wasm v1.
Is the issue with 43 also with 42?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.