Comments (11)
I think Number 2 could work well, it should also have some data of what kind of staking system the chain uses (interchain staking, interfluid, epoched staking, etc)
from chain-registry.
Thanks for contributing @mccallofthewild
Can we include comments in the schema or README defining what each of these systems means? Once we get to 'epoched' and 'permissioned-liquid', I start to get a little confused of what those mean... Also don't know which to use to standard/native staking, and what about superfluid staking (unless that under another category)?
Finally, I'm skeptical that this structure alone will be able to capture the various ways that each asset might be able to be staked. Are we to assume that all staking tokens are applicable to all staking systems specified? What if some tokens are stakable one way, and another set of taken are stakable another way?
Perhaps we should have each staking system have it's own set of tokens (or each token have its own set of systems)?
from chain-registry.
@pyramation I do too but the staking denom should be available at the chain level without having to load all tokens and their metadata
And to answer your question, ICS / Interfluid / Superfluid would suggest yes. But for the purposes of this PR, I just want to identify the asset which represents a sovereign unit of voting power
from chain-registry.
I like the idea of being able to specify different types of staking (i.e., interchain, interfluid, etc.), if required, although it's hard to imagine before much of this has been enabled.
I worry that as more and more types of assets might be accepted for paying fees on a chain, that we'll be having to repeat a list of all the assets again in the chain.json file just to specify them as a fee asset. I don't know if this might ever happen for staking. For this reason, I'm wondering if instead adding properties or features under assets in the assetlist.schema might be more efficient.
Another alternative is to specify default staking and fee currencies in chain.json, (like we have now, plus combined with option 2,) but then expanding upon it could happen in the assetlist.json.
For specifying fee assets, I think it'd be nice to also specify minimum, low, average, and high fee rates (like in Keplr wallet) for each fee currency.
e.g.,
Under assetlist.json::asset
"fee_currency": { "minimum": 5, "low": 100, "average": 130, "high": 250 }
and
"stake_currency": true
from chain-registry.
Staking & fees both belong on the chain level. An asset alone doesn't need that context. Particularly not when it's an IBC voucher on a counterparty chain.
"staking": {
"staking_systems": [ "superfluid" ],
"staking_tokens": [
{
"denom": "uosmo",
}
]
},
Going to open a PR with the schema updates. Initial staking_systems
enum will include
interchain | interfluid | epoched | permissioned-liquid
from chain-registry.
@JeremyParish69 There is no standard for any staking system besides default DPoS so I don't forsee the staking_systems
property being much use beyond user-facing metadata.
All tendermint based systems should still have a token representing units of voting power, even if it is derivative of other tokens or dynamically managed by the protocol. So for superfluid/interfluid, you can bond LP tokens but uosmo is still the unit of voting power, as calculated by the TWAP of the pair.
"staking_systems"
is a bit of a catch-all. It could also be "staking_features"
. Epoched staking is a more efficient implementation of staking/distribution that uses time intervals rather than exhausting compute at every block. Permissioned Liquid staking refers to the Crescent model where they have a permissioned whitelist of validators that can receive system delegations from ucre
bonded into ubcre
.
from chain-registry.
Thanks, @mccallofthewild.
If I may ask, should we split superfluid from interfluid? Superfluid refers to the OSMO in the LP to count as stake, while interfluid refers to the foreign token in the LP (e.g., ATOM) to count as stake on a foreign chain (e.g., Cosmos Hub), and I'm thinking these are sufficiently distinct such that they warrant separate categories. Thoughts?
Also, as for epoched, I believe the natively staked OSMO is not epoched, but only the bonded LP incentives is epoched.
I don't know, however, if superfluid staked OSMO is epoched, so Osmosis maybe should have that, but also not... Kinda thinking 'epoched' perhaps should be removed because of the timing (maybe) only applying to a certain type...
from chain-registry.
@JeremyParish69 superfluid -> interfluid
sounds right.
Osmosis LP rewards implement epoching. But ADR 39: Epoched Staking was proposed by Dev & Sunny a while back to improve the efficiency & reliability of the staking module. Development is on pause right now so I'm happy to exclude it until the implementation is complete.
from chain-registry.
I like simplicity of stake_currency: true
.
Question: is it possible stake more than one currency on a chain?
from chain-registry.
Starting to think we should take a step back to:
"staking_token": {
"denom": "uosmo"
},
As @pyramation suggested there is really only one sovereign unit of voting power per chain. And all of the aforementioned staking_systems
either don't exist yet or only exist on one chain, rendering them mostly useless in this context.
from chain-registry.
One of the most frequent blockers is guessing what technology there will be and trying to anticipate that from the start. In this case, I think we aren't risking too much work or loss of data by omitting the staking systems, so I'd be OK with just "staking_token" to get quicker movement on this. Would you be able to make that change to you PR, @mccallofthewild ?
from chain-registry.
Related Issues (20)
- solving proto management with chain-registry HOT 1
- cosmos.directory / main json should use image logo's from chainlist.json, not assetlist.json HOT 2
- Create archive directory for when a chain forks
- Having issues reading assets from sei
- docker images for chains HOT 3
- @chain-registry module wrong info
- Endpoint ICS validators don't show up HOT 1
- Missing `image` field on https://chains.cosmos.directory HOT 5
- Sei assetlist invalid denom units
- https://fcd.terrav2.ccvalidators.com/ endpoint not resolving for Terra2 HOT 1
- Neutron
- Garrtbrayn_Inno HOT 2
- Terra chains HOT 2
- api/rpc is not maintaining by provider
- Minting
- Improve assetslist.json validation HOT 2
- Cosmos Directory all Osmosis API Nodes seem to be down
- Add ping.pub explorer link for FxCore
- Incorrect exponents for WBTC.axl & WETH.axl
- Extend explorer schema to include validator link, proposal link and block link
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chain-registry.