owned this note
owned this note
Published
Linked with GitHub
<div style="display: flex; align-items:center;flex-direction: column;">
<img src="https://hackmd.io/_uploads/HyyVnQv3T.png"/>
<h1>Interoperability </h1>
</div>
<hr style="page-break-after: always;"/>
# Report - Interoperability Groupd
[TOC]
<hr style="page-break-after: always;"/>
## Summary
We had 3 Session. This is our 4th Session.
Our goal is to compare in a structured way Cardano and Polkadot.
We couldn't find similar Groups, Documents who aimed the same.
So we did it our self.
We started with the Web3 Primitives.
The first session was about Blockexplorers
The second session was about Wallets.
The third session was about Smart Contracts.
The fourth and this session was about Review and Reshuffle.
<hr style="page-break-after: always;"/>
## Session 1: Blockexplorers
:::info
**Participants:** Mark & Frank
**Time:** Saturday 10 am (cet) - 13 am (cet)
**Place:** Google Meet
**Tools:** HackMD
**Tasks:**
1. Quick Recap
2. Rough Outlining
3. Compared Search
4. Compared Overview
5. Compared Chainspecification
6. Compared Education for Blockexplorer
7. Compared Smart Contracts
8. Summary
:::
<hr style="page-break-after: always;"/>
### Summary - Blockexplorer
We started our session with a Quick Recap of Unifires in the Last Month.
We decided to first tackle the Topic Blockexplorers.
Our first goal was to find a nice way to start a simple comparison.
We came up with dividing a Blockexplorer in diffrent functionalites.
We choose one functionality after another.
We showed each other how each functionality works on each chain.
We made notes and discussed vividly whats going on where and why.
We reshuffled our Notes and gave it some structure.
In the end we wrote a quick summary.
<hr style="page-break-after: always;"/>
### Blockexplorer General
```plantuml
!theme plain
left to right direction
skinparam actorBorderThickness 1
Blockexplorer -- (search)
Blockexplorer -- (overview)
Blockexplorer -- (chainspec)
Blockexplorer -- (educate)
Blockexplorer -- (smart contract)
```
### Ethereum
```plantuml
!theme plain
skinparam actorBorderThickness 1
left to right direction
etherscan -- (search)
etherscan -- (overview)
etherscan -- (chainspec)
etherscan -- (educate)
etherscan -- (smart contracts)
```
- [search](https://etherscan.io/)
- [overview](https://etherscan.io/)
- [chain specs](https://etherscan.io/charts)
- Educate
- [Video](https://www.youtube.com/watch?v=nuZOZd0ZaKM)
- [Written](https://info.etherscan.com/)
- [smart contracts](https://etherscan.io/token/0x23cbb9f0de3258de03baad2bcea4fccc55233af0#writeContract)
- [Uml](https://goerli.etherscan.io/viewsvg?t=1&a=0xba12222222228d8ba445958a75a0704d566bf2c8)
### Cardano
```plantuml
!theme plain
skinparam actorBorderThickness 1
left to right direction
cexplorer -- (search)
cexplorer -- (overview)
cexplorer -- (chainspec)
cexplorer -- (educate)
cexplorer -- (chain selection)
```
- [search](https://cexplorer.io/)
- [overview](https://cexplorer.io/)
- [chainspec](https://cexplorer.io/params)
- Educate
- [Written - Explorer Educaiton](https://docs.cardano.org/cardano-sidechains/basics/block-explorer/)
- [Video - Explorer Education](https://www.youtube.com/watch?v=8HXxQFhj8fw&pp=ygEJY2V4cGxvcmVy)
- [Cardano Side-chain toolkit info](https://docs.cardano.org/cardano-sidechains/sidechain-toolkit/introduction/)
- **Cardano Facts (2024-02-24):**
- There is a fixed limit of 45 Billion Ada
- Circulated Tokens are 30 Billion Ada
- Total staked is 23 Billion Ada
- Staking Ada is done without locking it up
- **Cardano Extra**
- [Real time transactions](https://pool.pm/)
- [EUTxO visualizaition](https://eutxo.org)
- [Decentralized Blockchain Interoperability protocol](https://www.wanchain.org/)
- Stablecoins:
- [Indigo - iusd](https://app.indigoprotocol.io/)
- [Djed](https://djed.xyz/)
- [Cardano "namespace service"](https://handle.me/)
- [Swaping Cardano](https://minswap.org)
> :information_source: Cardano Smart Contract:
> Smart contracts in Cardano are divided to onchain and offchain parts. The onchain code is normally not stored on chain, but the hash of the code is used to derive the address of the contract. Transactions that wants to spend from the smart contract must provide the actual code for the contract.
### Polkadot
```plantuml
!theme plain
skinparam actorBorderThickness 1
left to right direction
subscan -- (search)
subscan -- (overview)
subscan -- (chainspec)
subscan -- (educate)
subscan -- (smart contract)
subscan -- (chain slection & XCM)
```
- [search](https://polkadot.subscan.io/)
- [overview](https://polkadot.subscan.io/)
- [chainspec](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fpolkadot.public.curie.radiumblock.co%2Fws#/explorer)
- Educate
- [Video - Explorer Education](https://www.youtube.com/watch?v=g4b4IWR6OrE&list=PLOyWqupZ-WGsnACsCmWH7PO-0paz9zlQ8&index=4)
- [Written - Explorer Education](https://wiki.polkadot.network/docs/polkadotjs-ui)
- [Smart Contract](https://astar.subscan.io/wasm_contract/XoarFs7ZCxen89W1suDDKrLqhVdp6uw6mmWuvZLUXfVwvre?tab=contract)
- [Chain selection](https://polkadot.subscan.io/)
- [XCM Dashboard](https://kusama.subscan.io/)
- **Polkadot Base Information:**
- There is no fixed Limit of Dot.
- Total Issuance Tokens are 1.414B Dot.
- Total staked is 754.759M Dot
- Staking Dots locks the dot.
- **Polkadot Extra:**
- [Swaping Polkadot](https://hydradx.io/)
<hr style="page-break-after: always;"/>
### Notes
- **Notes General**
- Quick Recap
- [Proposal went thruh](https://cardano.ideascale.com/c/idea/112389)
- Discord will be our main thiny
- **Notes Ethereum**
- See Extra Section
- **Notes Cardano**
- Consensus mechanism in Cardano is Ouroboros.
- **Notes Polkadot**
- Token Distribution
- Extrinsic
- Polkadot has no fixed Limit
- consus oroborus, most likely
- babes is oroborus, grandpa
- subscan, polkadotJS App
- Do Transaction Walkthruh
- Testnet Kusama(expensive), LocalNode
- Conseus Mechanism on Polkadot is Babes. Its a variant of Ouroboros.
<hr style="page-break-after: always;"/>
## Session 2: Wallets
:::info
**Participants:** Mark, Felix, Watson, Frank
**Date:** 23.03.2024, Saturday 10 am (cet) till 13:30 (cet)
**Place:** Google Meet
**Tools:** HackMD
:::
<hr style="page-break-after: always;"/>
### Summary - Wallet
We started our session with a Quick Recap of Unifires in the Last Month.
We decided the main goal was to disect the topic Wallets.
We encoutenterd many side topics.
To Each Sidetopic we wrote Notes.
After each iteration, we restructured our doings and gave it a shape.
In the end we wrote a quick summary.
<hr style="page-break-after: always;"/>
### Cross Talk
In Cross Talk we spoke about the latest unifire happings.
- Felix: Previous work and new stakeholders of Unifires
- Felix: Knowledge Sharing Idea / Workshops Idea eloboration
- [Example or Swarm Project ](https://catalyst-swarm.gitbook.io/df-reputation-workgroup)
- Rough Roadmap could be the following
- 1. Expert talks
- 2. Identify most effective integration
- 3. Translate integration into proposals
- 4. Make incentivasatoin for work working
- Felix: Identify low hanging works : Interoperability integration of Polkadot <-> Cardano
- Felix: Felix particpated in occasion on the Polkadot Side. Gave a Summary.
- Frank: Frank participated in sub0. Promoted Unifires. Got good Feedback.
- Watson: Watson introduced himself.
- Colleague of Frank
- Watson is a early founder in the Ethereum Eccosystem
- Familar with Polkadot and good familiary with Ethreeum
- Watson is happy to be here. Intrested in Unifires Shinanagins
- Frank keeps him uptodate.
- Mark: Upcomming Toloise Talk and meeting.
- Mark: Mark gave a quick elobration of Catalyst, the governance of cardano.
### Disection
In Disection we disected the Topic Wallets. Its started as a Open Fire Round and on the go we found patterns. These patterns made similarites and diffrences clearer.
We started with the Cardano Wallet, Eternal.
Eternal is the most used wallet.
It displays Epoch. One Epoch is 5 Days.
You can manage multiple Wallets.
Every Wallet can manage multiple accounts.
HD Wallet means Hierachaly Determistic and thats what is used.
There is alternative, single account address.
There is a dashboard in Eternal.
Available funds and locked funds.
Locked funds just means they are locked for further staking. They still can further used. Thats a diffrence compare to the current Polkadot version.
Wallet allows staking. Polkadot and cardano staking thruh pools.
Cardano Address has a stake key. Stake key allows staking.
Eternal allows bulk transaction.
Cardano has multiple native tokens.
I can register a native token via [cardano foundation](https://github.com/cardano-foundation/cardano-token-registry)
There is an exchange. The excahnge shows many token. One of the [exchange](https://www.taptools.io/)
There was a problem. Scam tokens were sendt. There is registery. They have maliosouc link. There is pool.pm
The gist of our Journey is, there is a wallet. The wallet allows diffrent actions. The actions are the following.
The Eternl wallet allows me to:
- Send
- Receive
- Swap
- Vote
- Stake
- See History
- See Dapps Explorer
- See Staking Dashboards
### General
```plantuml
left to right direction
wallet -- (send)
wallet -- (receive)
wallet -- (swap)
wallet -- (vote)
wallet -- (stake)
wallet -- (shows history)
wallet -- (shows dapps)
wallet -- (shows staking)
wallet -- (shows connections)
```
### Polkadot
**Rewardsystem**: (Talisman)
Talisman main income is via the stakepool fees. Their default pool is the talisman pool. You are easily allowed to use diffrent pools. Talisman income via the stakepools goes back into the further development of Talisman.
**Open Source**: Talisman is open source. The license is GPL. [The Repo](https://github.com/TalismanSociety/talisman-web?tab=GPL-3.0-1-ov-file)
- Send: Talisman allows you to send token to diffrent addresses
- Receive: Talisman allows you to receive tokens to your addresses and display them nicley
- Swap: Talisman allows you to swap tokens. How the swap is actually happening is currently unkown.
- Vote : Talisman doesnt do voting. Polkadot assembly or subsquare allows voting.
- Stake : Talisman allows you to stake your tokens to all available chain. Its possible to stake on diffrent chains.
- Shows History : Its possible to see History. Its not easy to see all transaction, because one address can have multiple sub addresses on diffrent chains.
- Shows Staking: Talisman provides some overview about your stake.
- Shows Connections:Talisman provides a way to see all connections that you are logged in via your wallet in diffrent sites.
### Cardano
**Rewardsystem:** (Eternal)
**Open Source:** Eternl is not open source.
- Send: Eternl allows you to send token to diffrent addresses
- Receive: Eternl allows you to receive tokens to your addresses and display them nicley, also allows generating new addresses to receive (pseudonimity).
- Swap: Eternl allows you to swap tokens. How the swap is actually happening is currently unkown.
- Vote: Voting can be done through Eternl.
- Stake: Eternl allows you to stake your Ada, staking does not lock your Ada.
- Shows History: it is possible to see History in a simple, understandable view.
- Shows Staking: Eternl provides some overview about your stake.
- Shows Connections: Eternl provides a way to see all connections that you are logged in via your wallet in diffrent sites.
- Exchanging tokens directly through Eternl via DEX:
- Eternl uses some aggregators (like DexHunter and MuesliSwap), that collects quotes from multiple DEX-es and chooses the best.
- Eternl does not adds a percentage on the exchanges initiated, only the aggregator adds its own fees.
**Notes:**
Stakepool Operations https://www.titanstaking.io/
Funded Proposals in Catalyst https://projectcatalyst.io/search?q=eternl
### Ethereum
**Rewardsystem:** (Metamask)
- Metamask takes a percentage of the transactions for itself to fund development (Felix, is this right?).
- Exchanging tokens directly through Metamask:
- Metamask collects quotes from multiple DEX-es and chooses the best.
- Metamask also adds a percentage on the exchanges initiated as "provider" fee (on top of the DEX fees).
<hr style="page-break-after: always;"/>
### Notes
#### Governance
In Governance we spoke quickly how diffrent eccosystem are oganise funding.
- Ethereum via Ethereum Foundation
- You write a proposal and a commitee votes for it
- Unkown how the comittee is selected
- Cardano via Catalyst
- You go to ideascale and create a proposal to release funds for implementing a specific project
- Ada holders vote with the weight of their Ada
- Polkadot via OpenGov
- You go to polkaassemly and ask the community to vote with their Dot
- Governance logic sits in the governance pallet (have to check)
#### Question Watson
In Question Watson we elobrate diffrent question from Watson.
- Unifires is a collarbarotion across Eccosystem
- Currently cardano & Polkadot
- No rivaly
- 1. What is pledgin system?
- 2. Is there a centralised Propsal form input? Whats has to be in
- 3. What is the current onbarding?
- We elobrated template creation for cross funding, cross communication, corss, is most likely new.
#### Handle and Identiy
There are solution for Handles and idently.
A handle is a mapping of address to a understanble text. 0x389040 -> frank.dotdotcard
A Identiy is about identify the person via diffrent process.
**Identiy**
- In polkadot we are asking Dudley. Kilt main dev.
- Polkadot we have kilt. Kilts main topic is Identiy
- Polkadot has identity in polkassembly. It works via stake dots and safe a handle.
- In Cardano we are ask Intersect & Sanchonet, IAMX & NMKR, CF dev team Catalyst
- In Cardano we have [Identify from the Foundation](https://identity.cardanofoundation.org/)
- Cardano f.e [linko](httkps://identity.cardanofoundation.org/)
- IOHG atopia identiy, quite new,
**Handle**
- Ethereum [ENS](https://ens.domains/)
- Polkadot we have azero. Azero main topic handle.
- Polkadot azero.id sits on Aleph Zero. not well intregrated yet.
- Cardano Name Service, [CNS](https://cns.space/)
#### Eccosystem Start
- In polkadot we started with Entity parity
- For polkadot overall in the end the enity parity should become absolutat
- In cardano we started with Input Output Hong Kong, was renamed to Input Output Global.
- For cardano overall in the end Input Output Global should become absoute.
#### Stakepools
- On Cardano the ideal number of validator nodes are around 500.
- A validator get rewards for minting blocks.
- With more delegated Ada, validators has more chance to be selected for block production.
- But after the pool "saturates" (the delegated Ada amount reaches a certain threshold, the returns diminish significantly to incentivize the distribution of delegated Ada.
- We have staking dashboards
- On Polkadot we have [staking.polkadot](https://staking.polkadot.network/#/overview)
- On Cardano we have [pool.pm](https://pool.pm/ ) and [cexplorer](https://cexplorer.io/pool)
- We have staking dashboards in the wallets
#### Licences
There are many licenses. Common Problem of Eccosystem that Projects claim to be open source. But Open source is a vague subject. This is a common issue.
<hr style="page-break-after: always;"/>
## Session 3: Smart Contracts
:::info
**Participants:** Mark & Frank
**Time:** Saturday 10 am (cet) - 13 am (cet)
**Place:** Google Meet
**Tools:** HackMD
**Tasks:**
1. Quick Recap
2. Introduction of Smart Contracts
8. Summary
:::
<hr style="page-break-after: always;"/>
### Summary - Smart Conracts
- We \<Verb\> about \<Noun\>
<hr style="page-break-after: always;"/>
### Introduction Smart Contracts (Cardano)
The original language/technology is called Plutus (named after the Greek god of wealth).
Plutus compiles to UPLC (untyped plutus core) bytecode.
Languages that compile to UPLC:
- Haskell (specific subset)
- Plutarch (Haskell library)
- Aiken (https://aiken-lang.org/) (getting more and more "exposure")
- Pluto (not widely used)
- Plu-ts (typescript library)
- Helios
Plutus Pioneer program: IOG organized learning course.
<hr style="page-break-after: always;"/>
### Notes
**FFP vs OOP**
- Easy to rationalize, easier to proof, easier to scale more bugfree
- Speaking to a mathematician, specific, runs what i say it runs
- OOP game thingy thinking fits well
- OOP comes from UI (smalltalk invited that)
- OOP went nuts 199X and it was thee thiiing, then everyone realized doesnt not fit all problems, DesignPatterns invention time, ..
**Education**
- [Plutus Pioneer Program](https://docs.cardano.org/pioneer-programs/plutus-pioneers/)
- [Giovanni videos](https://www.youtube.com/watch?v=z5_1WiVc3aA)
- [Plutonomicon](https://github.com/Plutonomicon)
- [Plutus repo](https://github.com/input-output-hk/plutus)
- [Cardano Ledger repo](https://github.com/input-output-hk/cardano-ledger)
- [Plutus Apps](https://github.com/input-output-hk/plutus-apps)
**Formal verification**
- Coq
- Languages used in Coq source files: Vernacular, Gallina, Ltac.
- Use cases of formal verification/formal methods.
- Formal verification is the process of prooving properties of an already existing program.
- Formal methods is a way to create programs that are formally verified.
- Strong use cases for formal methods/verifications:
- Healthcare
- Automotive
- Finances (blockhain!)
**Stack VMs vs Lambda Calculus Based vms**
- Stack based vms mainly operate on values stored in a stack. [https://www.evm.codes/playground]
- Currently only one blockchain uses a lambda calculus based vm: Cardano.
- Lambda calculus based vm is easier to reason about => formal verification
**Dependent Types**
- Types that can depend on values are called dependent types.
- Haskell does not have dependent types, Coq has, so value and types live in the same "universe".
**Setting up nix and nix flakes**
- (nix)[https://nixos.org/download/]
- (nix flakes)[https://nixos.wiki/wiki/Flakes]
**Cabal, Haskell, GHC, Stack**
- Cabal is the canonical package manager and build system for Haskell.
- Stack is a newer build system, it uses cabal under the hoods.
**Example of datum**
- https://cardanoscan.io/transaction/352037be78ea223514d3982f1a06186b1d4036046c14245d4be8e0aa62f698a2?tab=utxo
**Aiken**
- (Aiken language)[https://aiken-lang.org]
**Undocumented Sidenotes**
- deterministic transactions
- blockchain state in Cardano
- Validation if transactions
- Plutus versions
- Data types
- Validation script are passive in Cardano
- Stacks - smart contracts for Bitcoin
<hr style="page-break-after: always;"/>
## Session 4: Review Doing & Think
:::info
**Participants:** Watson & Frank
**Time:** Sunday 6 am (cet) - 9 am (cet)
**Place:** Google Meet
**Tools:** HackMD
**Tasks:**
1. Outline of current Doings
2. Decalare goal of Report
3. Sidejourney: Exchanged 3D Topic
4. Questionair Watson of Unifires
5. Split in 2 Main Task
- Reshuffle previous doing
- Craft Q&A Source
6. Write Summary
:::
<hr style="page-break-after: always;"/>
### Summary - Reshuffle
Franks goal for Session 4 is to give our current doings a shape which leads to a concrete outcome. We looked thruh our previous documents.
On the Journey questions of Watson appeared.
Watson came up of creating a quick Draft of a Q&A to give the Idea of Unifires a small source Information.
We splitted our Doings in 2 parts for Session 4.
- Reshuffeld current doings.
- Crafting a Q&A Source.
<hr style="page-break-after: always;"/>
### Reshuffle Session 1-3
1. Throw everything in one Document.
2. Throw a structure around it to unify.
3. Write extract structure down
### Extract Structure
#### 1. Landing Page
```md
<div style="display: flex; align-items:center;flex-direction: column;">
<img src="https://hackmd.io/_uploads/HyyVnQv3T.png"/>
<h1>Interoperability </h1>
</div>
<hr style="page-break-after: always;"/>
<img src="https://hackmd.io/_uploads/By3udS3A6.png"/>
```
#### 2. Table of Contents
```md
[TOC]
```
#### 3. Every Session starts with the following box
```md
:::info
**Participants:** Participant A, Participan B,
**Time:** TimeX - TimeY - Total Hours
**Place:** PlaceOfMeetX
**Tools:** ToolX
**Tasks:**
1. TaskA
2. TaskB
3. TaskC
4. ...
:::
```
#### 4. Every Session has a Summary.
```md
## Summary - <SessionTopic>
We <Verb> about X.
f.e.
We spoke about the last doings.
We wrote Text about XYZ.
We disected XYZ.
We chatted about XYZ.
We wrote a Summary.
Feel free to sumarize in whatever way possible. Its is just a suggestion.
```
#### 5. Every Sessio should have Understandable Structure
```md
f.e.
## My Great Topic A
...
## My Great Topic B
...
## Comparision of Topic A and Topic B
...
```
#### 6. Every Session has sidejourney. Sidejourney can be caputured in Notes.
```md
f.e.
### Notes
#### Sidejourney: Topic X
- Bullet A
- Bullet B
- Bullet C
- ...
#### Sidejourney: Topic Y
- Bullet A
- Bullet B
- Bullet C
- ...
```
#### 7. After Each Session, reshuffle the notes make it nicey.
```md
- Use **MARKDOWN** to structure text.
- Use Headings for Topics
- Use Bold to enhance a word or avoid a Heading
- Use Bullet points for quick count
- Use Tables, if it fits. Looks nice.
- Use Codeblocks, if it fits.
- Use Diagrams via mermaid / plantuml to avoid text add pictures
- Use Links to throw discussed content
**Important:**
Something is bigger then Nothing.
Just something is nice to have.
```
<hr style="page-break-after: always;"/>
### Crafting a Q&A Source
We crafted a common FAQ for the Unifires Group.
Watson had a fresh mind and so he had the best Commonly asked question.
So we crafted a quick Questionair.
Question have to be filled out by:
| Name | Eccosystem | Notes |
|:------ |:------------------ |:------------------------------------------- |
| Tomi | Cardano & Polkadot | Initialiser of Unifires & Double Ambassador |
| Felix | Cardano | Singularity .net |
| Peter | Cardano | |
| Mark | Cardano | Cardano Developer |
| Frank | Polkadot | Polkadot Developer |
| Linda | Polkadot | Kodadot |
| Viktor | Polkadot | Polka Hungary |
**1. What is the purpose of Unifires?**
- Tomi:
- Felix:
- Peter:
- Mark:
- Frank: Unify eccosystems.
- Linda:
- Victor:
**2. What do you want people to know?**
- Frank: I don't get the quesion. I like the multichain Idea. We will have diffrent chains for diffrent reason to redefine "ownership". Ownership is the underlining Theme on every chain.
**3. What resources does Unifire provide to the community**
- Frank: An competent & agnostic view on the Technology Blockchain.
**4. What are the requirements for developers to join and participate?**
- Frank: Currently every Developer can join but from a Technology perspective, I think a good undertanding of the Topic is from Benefits. In my area it gets quite nerdy quite fast.
**5. What level of experience do you want people to have before joining?**
- Frank: 2 years of Software Development sounds like a solid to me currently. I think The question sets the underlying premise that you have to be a Developer to join and this premise is not true. But from a Tech Side, thats my answer.
**6. How will people contribute to growing the alliance of developers?**
- Frank: Join the Discord. Lets see. But in my eyes its more for Builders not just for Developer. Blockchain is tech heavy but nothing gets used if only Techies do their Techy things. ^^
**7. How frequent do people need to be notified of progress/events/meetups**
- Frank: Uff, Currenlty I think a good source is the YT Channel and watch the monthly report.
**8. Will Unifire host physical meetups or only online events?**
- Frank: I think if physical meetups then not under the umbrella unifires more under the umbrella crypto in general.
**9. What are the long term plans for self sustaining**
- Frank: In my opinion, selling things is the most sustainable option. Our current source is unique insights, skills and knowledge. This can be shape in diffrent kind of products. But for the first go, treasuy sounds solid.
**10. What existing infrastruture and resources are availabe for developers.**
- Frank: There are plenty of ressource for diffrent eccosystem but a good unified source is missing in my eyes. In the frontend world we have this here. [Component Party](https://component-party.dev/).
**11. What technical requisites are needed to understand the online events?**
- Frank: Good question. Having a grasp of crypto helps. I guess.
**12. Is there a focus on social impact for everyday people?**
- Frank: Democratize Financial instiution is one of the core principle of crypto in general. Not certain where does this question is aiming towards.
**13. What is the mission statement for Unifires?**
- Frank: Vision is unify eccosystem. Mission is create Place for chain agnostic people I guess. Vision is quite set, Mission is work in progress.
**14. Is there going to be a centralized account that handles media?**
- Frank: Yes, ask felix, he is the guy. : )
**15. Is there going to be a media group in Unifires?**
- Frank: No clue what you mean. I guess no.
**16. Will this be open sourced?**
- Frank: I like open source, its publicy funded anyways so I assume everything will be open source. Should be discussed, I assume.
**17. Will this be used to onboard people into crypto/blockchains?**
- Frank: What is this? : D
**18. Will this be used for governance and consensus between blockchains?**
- Frank: If we nail down a specific outcome, then this outcome should be a great source for multi chain governance.
**19. Where will this grow and go and become?**
- Frank: Keep going, make things move. I love the people the rest i figure out on the road.
**20. What is your long term vision with this?**
- Frank: unify eccosystems.
<hr style="page-break-after: always;"/>
### Notes
- Watson found Unifires interesting.
- Watson want to write about it.
- Watson is new.
- Best way to unerstand it clearly is to ask.
- Watson creates an Articles about Unifires and their doings for normal people.
Complete Sentence:
This Markdown is to create a consensus of the purpose, adoption and focus of this group.
The rough purpose is:
This will create a general weekly newsletter/summary of each article, and then articulated towards the specific ideal audience.
Business development questions:
For each founding blockchain ecosystem, please respond with your personal/blockchain perspective (UNBIASED TO OTHER RESPONSES)
**UNIFIRES**
**Introduction**
Unifires is an alliance of developers building on chain, uniting dApplications cross function between chains
**Problem**
- There is no community or organization that unifies development work together
- There is no communal efforts in building dApps
- There is no global structures for developers
- There is minimal/nonexistinant sense of community or alliance beyond blockchains
- Crypto isn't as inclusive for people as desired
**Idea**
- Unifires develops an organization, alliance, and community to tackle unnecessary development for dApps
- Unifires connects together developed and functional systems cross chain to decline wasteful development
- Unifires creates a community for Web3 that goes beyond any blockchain
- Unifires creates a social movement that helps developers collaborate beyond borders
- Unifires provides technical overviews of blockchains by their similarities, differences, and ways of bridhing technology
- Unifires creates governance between blockchains
**Solution**
- Unifire - to organize and develop crosschain governance through communities and social efforts.
- Organize systems and existing viable applications to reduce reiteration between developers
## Session 5: Smart Contracts
:::info
**Participants:** Mark & Frank
**Time:** Saturday 10 am (cet) - 13 am (cet)
**Place:** Google Meet
**Tools:** HackMD
**Tasks:**
1. Review past Week
2. Dive into ink! Smart Contracts
3. Adjust nix template
4. Explored Nodes, Variables and Functions
5. Scratch out a basic Contract
- Ideate
- Write
- Build
- Deployed
6. Write Summary
:::
<hr style="page-break-after: always;"/>
### Summary - ink! Smart Contract
In todays Session we started were we left of.
In the last session we troubled thruh a nix setup with ink.
We solved the Issue and continued.
We installed substrate contracts node. Explored diffrent substrate template.
We created a new ink file. `cargo contract new abc`
We builded the boilerplate.
We discussed the compiled outcome.
We deployed it `cargo contract instaniate --suri //Alice --args true`
We explored a bit of Aiken. We discussed diffrent deployment chains, alias looked thruh use.ink.
We explored inkathon. Setup the Boilerplate.
Explored the configuration. Took a deeper look in how to call a contract from the frontend via the Boilerplate.
We discussed Bali Blockchain Center and a possible Cardano Presence.
### Notes
We created Notes. We lost the notes.
## Session 6: Smart Contracts
:::info
**Participants:** Mark & Frank
**Time:** Sunday 10 am (cet) - 13 am (cet)
**Place:** Google Meet
**Tools:** HackMD
**Tasks:**
1. Review past Week
2. Set up nix for aiken
3. Create a new aiken project, went thruh the structure
4. Elobrorate a validator and went thruh naviagtion of docs
5. Build flipper step by step, explaination after explanation.
:::
### Summary
Today we focused on aiken.
First we setup a nix aiken development setup.
We spoke about the Folder Structure.
We created a Valdiator.
We spoke about the spend function.
We created a Flipper Contract.
We discussed all keywords that are neccessary to build it.
We went thruh the underling arcitecutre with excalidraw.
We looked at real life Token Contracts.
We called it a day. That was not less.
Next up. Create Tokens.
After it, DAPP Architecture.
### Link Pot
- [Unifires ](https://projectcatalyst.io/funds/11/cardano-open-ecosystem/polkadot-cardano-unifires)
### Aiken Smart Contracts
- Aiken home page: https://aiken-lang.org/
```aiken
// Import necisities
use aiken/transaction.{ScriptContext, Spend, InlineDatum}
use aiken/list.{find,count}
// runs on validator
validator {
// validator calls spend if its declared
// It always has 3 inputs, that can be used
// datum, reedemer, ctx
fn spend(datum: Bool, _redeemer: Data, ctx: ScriptContext) -> Bool{
// we extract the out_ref out of the purpose.
// The purpose has 4 Cases.
expect Spend(my_out_ref) = ctx.purpose
// I grep my spended input from my UTXO
expect Some(my_input_spend) = find(ctx.transaction.inputs, fn(x){ x.output_reference == my_out_ref })
// We limit the outputs to one. So we count all outputs and check in the end.
let count = count(ctx.transaction.outputs, fn(x){ x.address == my_input_spend.output.address })
// We require(solidity) that it has to be one
expect count == 1
// I iterate thruh outputs, which will be created if transaction is included in the chain.
expect Some(my_output_created) = find(ctx.transaction.outputs, fn(x) { x.address == my_input_spend.output.address})
// I extract my datum out of my UTX Output
expect InlineDatum(my_output_created_datum) = my_output_created.datum
// I convert it to a bool
expect my_new_flip: Bool = my_output_created_datum
// I validate that my datum is fliped. I check if its diffrent.
datum != my_new_flip
}
}
```
![Cardano flipper tx](https://hackmd.io/_uploads/B1SDQdMbA.png)
## Session 7: Create Aiken Token
:::info
**Participants:** Mark & Frank
**Time:** Sunday 10:30 am (cet) - 12 am (cet)
**Place:** Google Meet
**Tools:** HackMD
**Tasks:**
1. Review past Week (Tolouse)
2. Create Token
3. Exploration of token registry
3. How to work with valdiator arguments
4. Creating minting policies
5. Set topic for next
:::
### Summary
Today is a shorter session.
We made a review of our week.
- There was Tolouse happening. A Cardano Developer Conferene. It was glorious.
- Discussed franks current `burn burn boom` ink contract.
We continued on aiken.
- We reviewed cup contract from last time.
- We created minting validator and explored more available data in aiken.
- We look at token registry, and how to navigate. We discussed first NFT's (rock).
We decided next up we will use `lucid` or `mesh` to work with the contract in some kind of client side way.
### Code
```aiken
use aiken/hash.{Blake2b_224, Hash}
use aiken/list.{any, has}
use aiken/transaction.{OutputReference, ScriptContext}
use aiken/transaction/credential.{VerificationKey}
validator {
fn mint_all(_redeemer: Data, _ctx: ScriptContext) -> Bool {
// Only can mint one
True
}
}
// runs on validator
validator(utx_ref: OutputReference) {
fn mint_one(_redeemer: Data, ctx: ScriptContext) -> Bool {
// Only can one mint
ctx.transaction.inputs |> any(fn(x) { x.output_reference == utx_ref })
}
}
validator(utx_ref: List<Hash<Blake2b_224, VerificationKey>>) {
fn glorious_mint(_redeemer: Data, ctx: ScriptContext) -> Bool {
// Only can mint one
ctx.transaction.extra_signatories |> any(fn(x) { has(utx_ref, x) })
}
}
```
### Session 8: SmartContract Polkadot Deeper Dive
:::info
**Participants:** Mark & Frank
**Time:** Saturday 10:00 am (cet) - 12:30 am (cet)
**Place:** Google Meet
**Tools:** HackMD
**Tasks:**
1. Review past Week
2. Show current problems
3. Dived into ink Contracts
4. Zombienet
:::
### Summary
Today we started our session with inspecting our current issues.
Mark already had for FrankIsssues some Ideas.
So we defined our todays session of `ink deeper dive`.
We went thruh availabe documentation and explored smart contract development process.
We discussed upload vs instantiation.
We explored how to make a ContractLibary full of References of other Contracts.
We explored functional pattern and why they are great for distrubted networks.
We explored rust specific features of how to work with storage mappings.
A Tricky one was the resize array functionality which was needed for a solution.
We explored Zombienet and briefly lookd how to spin up a polkadot network locally.
We discussed how bridging of Cardano and Polkadot might work.
### Code
- [Refrence Project](https://github.com/SIOCODE-Open/not-a-bird/tree/main/packages/contracts/version_3)
- [Zombienet](https://github.com/paritytech/zombienet)
- [XCM Demo](https://github.com/OAK-Foundation/xcm-demo/)
### Session 9: Client Call Aiken (upcomming)
Notes: https://lucid.spacebudz.io/docs/getting-started/mint-assets/