First Milestone — v0.1.0

Seems a bit daunting task me and the team had, from what we wanted to build to what actually got build.
Rust
For two weeks we spent working CosmWasm Rust Contracts. We did actually got it, including unit tests, working perfect with cargo tests. Where we got issues was with CosmWasm and CosmJS, it was so difficult to get it work, we manage to get it sorted with the nice people from Secret Network.
Then next the Go service layer required to have a CosmosSDK client to connect to CosmWasm. This pretty much was a blocker in complexity. Then I rediscovered Ethermint, and thought I could use it and maybe create a set of RPCs like ancon_sendTransaction
.
Ethermint
Ethermint is an EVM on top of Cosmos. Really cool project by the way. I spent 72 hours trying to with no luck
- Creating new Ethereum Tx from LegacyTx — FileTx and MetadatTx
- Storing and reading in KVStore
- Then, try to read the IPLD CID
The first 2 simple, but getting data out is tough one, specially if your tx messages don’t follow EIPs.
So…what’s next?
Back to Starport
Backporting to Go, unit and integration testing — one day
Features and Roadmap
- Cosmos based chain for data economy use cases like NFT, Verified credentials and Offchain data sources
- Verified credentials ready (store VCs and DIDs)
- File microstorage and Metadata APIs using IPLD multihashes or CIDs
- Cross Minting metadata from any blockchain
- IPLD data sources for offchain trusted use cases
- Blockchain agnostic, use Ancon hashes like IPFS hashes
- Supports IPFS and Swarm features (proxy, coming Q4)
- Agnostic NFT Royalty mechanism (Q4)
- Swap decentralized content ETL jobs (Q1 2022)
- Filecoin, Chia features (Q2 2022)
Example
A new NFT token can use Ancon Protocol
to store IPLD CID in Metadata to keep it verifiable.
Upload content and stores CID for each content, content needs to be CID or multihash to be verifiable.
Link your content to metadata accordingly and store it in Ancon
using AnconJS
const payload = {
"name": "XDV metadata sample",
"description": "testing sample",
"image": "https://explore.ipld.io/#/explore/QmSnuWmxptJZdLJpKRarxBMS2Ju2oANVrgbr2xWbie9b2D",
"services": ["https://explore.ipld.io/#/explore/",
"https://explore.ipld.io/#/explore/",
"https://explore.ipld.io/#/explore/"],
"links": [
"QmSnuWmxptJZdLJpKRarxBMS2Ju2oANVrgbr2xWbie9b2D",
"z8mWaJHXieAVxxLagBpdaNWFEBKVWmMiE",
"QmdmQXB2mzChmMeKY47C43LxUdg1NDJ5MWcKMKxDu7RgQm",
],
};
const res = await ancon.metadata.add(payload)
console.log(`https://gateway.dao.pa/ancon/${res.cid}`)
Mint or anchor your Ancon metadata after its vetted by chain consensus protocol. The metadata is just a link to a gateway and always public.