over budget
Aiken: Smart Contract Toolchain
Current Project Status
Unfunded
Amount
Received
$0
Amount
Requested
$111,480
Percentage
Received
0.00%
Solution
  • Port UPLC to Rust (mostly done)
  • Implement the interpreter (own the full toolchain!)
  • Create a high level C-family language with functional semantics
  • UPLC static analysis tools
  • Robust testing tools
Problem

For most developers the Haskell syntax of Plutus is unpalatable or too unfamiliar to hit the ground running. Although Plutus is a great language, this causes enough friction to slow down developers.

Impact / Alignment
Feasibility
Auditability

txpipe

3 members

Aiken: Smart Contract Toolchain

Please describe your proposed solution.

We believe that a C-family language with functional semantics is what the Cardano dapp ecosystem needs to get to the next level. As trivial as it may sound syntax is a barrier to learning a new language. The ultimate goal is to have a language that is more palatable to what a majority of developers are used to. Simply put, most developers are used to curly braces.

Instead of approaching this top down, we've decided to work bottom up. So far we've ported the Untyped Plutus Core implementation from Haskell to Rust. Up next is the interpreter for Untyped Plutus Core. Not only is this work useful for eventually building a full Cardano node in Rust but it allows Aiken to own the full compilation toolchain for Cardano smart contracts.

Since we will own the full compilation toolchain we aim to also introduce static analysis to Untyped Plutus Core to further increase the security of Smart Contracts on Cardano.

We want Aiken to be a blazing fast, portable and modular toolkit for Cardano application development written in Rust.

Please describe how your proposed solution will address the Challenge that you have submitted it in.

Having a familiar syntax and integrated toolchain will accelerate development for both solo developers and small to medium sized teams. Optimizing smart contract developer workflows will drive more developers to the ecosystem.

What are the main risks that could prevent you from delivering the project successfully and please explain how you will mitigate each risk?

The biggest concern would be the new language getting no adoption. We can build all this and still have no one use it.

So far we've gotten good feedback from the community. Since we are working bottom up and providing a development toolkit with the language, we think that people will adopt the new language simply because the rest of the tools are such a joy to use.

Please provide a detailed plan, including timeline and key milestones for delivering your proposal.

Milestone #1: PoC

  • 1 month development
  • 2 full-time Rust developers
  • Deliverables
  • Untyped Plutus Core Interpreter
  • basic High level language syntax designed and parsed
  • Type checking the high level language

Milestone #2: Features

  • 2 month development
  • 2 full-time Rust developers
  • Deliverables
  • finalized syntax and standard library
  • testing utilities

Milestone #3: Hardening / Documentation

  • 1 month development
  • 2 full-time Rust developer
  • 1 full-time technical writer
  • Deliverables
  • Fully-Functional v1
  • Performance optimizations
  • Bug-fixing
  • Documentation site

Please provide a detailed budget breakdown.

Hourly rates:

  • Rust Developer: 75 usd / hs
  • Technical Writer: 36 usd / hs

Required Hours:

  • Rust Developers: 1400 hs
  • Technical Writer: 180 hs

Total Budget:

  • Rust Developer: 105,000 USD
  • Technical Writer: 6,480 USD

Please provide details of the people who will work on the project.

Lucas Rosa will lead the software development. He is a senior engineer with a diverse technical background and a passion for compilers. In addition to building toy languages he spent over a year helping build Roc a new functional programming language targeting backend development inspired by Elm.

https://github.com/rvcas

https://twitter.com/rvcas

Kasey White will be co-leading the software development. He is a senior engineer with experience in systems and automation testing. He used to work on blockchain and AI projects at FINRA.

https://github.com/MicroProofs

https://twitter.com/MicroProofs

If you are funded, will you return to Catalyst in a later round for further funding? Please explain why / why not.

If the project gains adoption we plan on returning to get funding to help build out a community and libraries around Aiken. This will pave the way for helping build standards and idioms for aiken based Cardano smart contracts.

Please describe what you will measure to track your project's progress, and how will you measure these?

Progress of the project will be measured by released versions matching the scope of the predetermined milestones.

  • A detailed roadmap will be presented as part of the open source repository.
  • Each milestone will be presented as a partial but working "release" within the repository
  • Milestone and tasks will be tracked via Github using their project management tool.
  • Direct communication with the development team will be able through TxPipe's Discord server.
  • Weekly update summaries will be posted via TxPipe's Twitter account.

What does success for this project look like?

Teams and solo developers are using Aiken to build the next big dapp on Cardano. Eventually we would like to start a foundation for Aiken to carry the project on as its custodian.

Please provide information on whether this proposal is a continuation of a previously funded project in Catalyst or an entirely new one.

This is an entirely new proposal.

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00