Last updated a week ago
Off-chain code for DApps may fail to persist enough state to recover funds, which can be critical if using e.g. Hydra, especially as manual persistence is error-prone and can be open to attacks.
Our orthogonally persistent engine for off-chain code will persist data over multiple datacenters, such that DApps using it can never lose funds due to failure to persist.
Please provide your proposal title
Orthogonal Persistence for DApps on Cardano by Sky Protocol
Enter the amount of funding you are requesting in ADA
100000
Please specify how many months you expect your project to last
7
Please indicate if your proposal has been auto-translated
No
Original Language
en
What is the problem you want to solve?
Off-chain code for DApps may fail to persist enough state to recover funds, which can be critical if using e.g. Hydra, especially as manual persistence is error-prone and can be open to attacks.
Supporting links
Does your project have any dependencies on other organizations, technical or otherwise?
No
Describe any dependencies or write 'No dependencies'
For this prototype, we will use only widely available open source libraries such as sqlite or rocksdb. In the future, we may also offer optional connection to multiple redundant storage services such as IPFS, S3 or Google Storage such that there is no single point of failure. Multiple suppliers will prevent single point of failure.
Will your project's outputs be fully open source?
Yes
License and Additional Information
The project will use Apache License v2.0.
Please choose the most relevant theme and tag related to the outcomes of your proposal
Research
Mention your open source license and describe your open source license rationale.
The project will use Apache License v2.0. Empowering developers to freely use, modify and distribute our software is a top priority for us at Sky Protocol / Olapa Networks, Inc. Allowing freedom and flexibility for builders is impotant for successful scaling on Cardano, in addition to technical scalability features.
How do you make sure your source code is accessible to the public from project start, and people are informed?
Our GitHub repository is public. New commits, as they are pushed to the repository, are publicly visible. We also post regular updates to our social media channels to keep our community members in the loop.
How will you provide high quality documentation?
Documentation will be continuously updated as Markdown files within our GitHub repository. We also provide instructional content on the following platforms, which we regularly updates:.
Please describe your proposed solution and how it addresses the problem
We will implement a virtual machine runtime fit for the off-chain evaluation of DApp code, that has Orthogonal Persistence, i.e. such that all DApp state automatically persists, without DApp programmers having to care about such. For this grant proposal we will build a Proof-of-Concept of this Orthogonal Persistence; the result will survive crashes, but will not necessarily be made to interact with a DApp—that will be for the next step, after we successfully demonstrate Orthogonal Persistence.
Please define the positive impact your project will have on the wider Cardano community
Hydra is not usable unless and until DApps can be trusted to persist their off-chain state no matter what. Thanks to our Orthogonally Persistent runtime, it will be possible and relatively easy to write DApps that take advantage of Hydra and other protocols that require users to robustly persist their data. This will lower the cost of developing DApps on Cardano, and increase the value of Cardano compared to other chains for which such a solution is not yet available.
We offer a Japanese translation ( https://docs.google.com/document/d/1h6w9cWDkwwQBCAE4ggjR8xBeQyVomOen1_06IsdH_fw ) and a Chinese translation ( https://docs.google.com/document/d/1eahO0mZdtu5E24UYN7OwY47CqvG8rtYlHoAKFYAJ7EE/edit ) of this proposal, as part of our efforts to make Sky Protocol as internationally accessible as possible.
What is your capability to deliver your project with high levels of trust and accountability? How do you intend to validate if your approach is feasible?
We have completed all of our milestones, for our Catalyst Fund 12 project, which was the beginning of our work on building the data availability network on Cardano.
We have also developed traction among the Cardano community, and we continue to do so. Relevant community growth metrics include
Milestone Title
SOPVM specification
Milestone Outputs
For this milestone, we will write a specification for SOPVM, the Simple Orthogonally Persistence Virtual Machine, is basically a variant of the applicative lambda-calculus with side-effects (state, IO), together with a lower-level representation that implements it, and a plan for that lower-level representation to be persisted in a database.
Acceptance Criteria
Markdown file for the SOPVM specification in a repository on our GitHub project (https://github.com/SkyProtocol-org/) at a specific commit URL. While we will likely have parts of an implementation, the complete implementation will not yet be completed as part of this milestone.
Evidence of Completion
Upon completion of this milestone, the specific commit URL within our GitHub repository that contains the Markdown file will be added to the Catalyst Milestone Module.
Delivery Month
1
Cost
16000
Progress
10 %
Milestone Title
Initial implementation for the SOPVM
Milestone Outputs
For this milestone, we will implement a simple interpreter for the SOPVM, to be written in a metalanguage of our choice, probably Gerbil Scheme. This implementation will be optimized for simplicity, not performance. Persistence will happen on the simplest possible database at hand, probably sqlite or rocksdb.
Acceptance Criteria
A specific commit of our GitHub repository, containing an implementation of SOPVM, together with a simple test suite that demonstrates both regular operation and operation with an interruption, and a README file to explain how to replicate the tests.
Evidence of Completion
Upon completion of this milestone, the specific commit URL within our GitHub repository will be added to the Catalyst Milestone Module.
Delivery Month
2
Cost
16000
Progress
40 %
Milestone Title
SOPL specification
Milestone Outputs
For this milestone, we will write a specification for SOPL, the Simple Orthogonally Persistent Language. This language will likely be based on the Scheme programming language, though it might be simplified or adapted for the needs of Orthogonal Persistence.
Acceptance Criteria
A specific commit of our GitHub repository that contains a Markdown file for the specification. No implementation will be provided yet as part of this milestone. The implementation will be part of future milestones.
Evidence of Completion
Upon completion of this milestone, the specific commit URL within our GitHub repository will be added to the Catalyst Milestone Module.
Delivery Month
3
Cost
16000
Progress
50 %
Milestone Title
“Milestone 4 - Bootstrap of SOPL”
Milestone Outputs
We will build a bootstrap implementation of SOPL on top of Gerbil Scheme using a combination of macros and functions. This implementation will NOT use the SOPVM and will NOT be persistent, but will be used for bootstrapping purposes.
Acceptance Criteria
A specific commit of our GitHub repository that contains the code as well as a test suite so that anyone can reproduce a test deployment of SOPL.
NOTE: This implementation will NOT use the SOPVM and will NOT be persistent, but will be used for bootstrapping purposes.
Evidence of Completion
Upon completion of this milestone, the specific commit URL within our GitHub repository will be added to the Catalyst Milestone Module.
Delivery Month
4
Cost
16000
Progress
70 %
Milestone Title
“Milestone 5 - Compiler from SOPL to SOPVM in SOPL”
Milestone Outputs
For this Milestone, we will weave all the previous elements together by writing in SOPL a compiler from SOPL to SOPVM. At that point, we will be able to run orthogonally persistent programs in SOPL, that run on the SOPVM and can resist process interruption, power loss, and system crash.
Acceptance Criteria
A specific commit of our GitHub repository that contains the code as well as a test suite so that anyone can reproduce test runs of SOPL programs, with or without interruption of the evaluation.
Important Note on Scope and Deliverable: For this Catalyst Grant we will not yet be demonstrating interaction with the blockchain.
Evidence of Completion
Upon completion of this milestone, the specific commit URL within our GitHub repository will be added to the Catalyst Milestone Module.
Delivery Month
6
Cost
20000
Progress
90 %
Milestone Title
“Milestone 6 - Project Close-out Report with Video”
Milestone Outputs
This Milestone culminates in a demonstration of a simple persistent program written in SOPL. The program will be similar to a DApp client, though the blockchain interaction will be simulated. On the other hand, surviving a deliberate crash of the computation will actually work and not be simulated.
Acceptance Criteria
Upon completion of this final milestone, we will have delivered a poject Close-out Report and Video with demonstration.
Important Note on Scope and Deliverable: For this Catalyst Grant, we will not be dealing with payment and scalability functionalities.
Evidence of Completion
Upon completion of this final milestone, the Project Close-out report and Video will be submitted to the Catalyst Milestone Module.
Delivery Month
7
Cost
16000
Progress
100 %
Please provide a cost breakdown of the proposed work and resources
The full budget (A 100,000) will be allocated toward paying our development team to complete the work outlined in the milestones.
How does the cost of the project represent value for the Cardano ecosystem?
This projet has the potential to enhance safety and efficiency for the Cardano ecosystem. Making it easier and more secure for developers to build on Cardano is one of our top priorities at Sky Protocol.
Terms and Conditions:
Yes
François-René Rideau, Chief Scientist and Lead Developer
François-René has extensive experience building on Cardano.
François-René has been making programming languages and distributed systems usable for 25 years. Alumnus of the École Normale Supérieure, Former Senior Engineer at ITA Software, he also worked at Google and Bridgewater Associates. While working in the industry, he notably maintained and rewrote ASDF, the build system at the heart of the Common Lisp open source community; he also kept publishing academic papers and speaking at programming language conferences.
Gauthier Lamothe, Chief Operating Officer
Gauthier has participated in a few blockchain projects, for entities such as the Free Republic of Liberland (that recently started using Polkadot), and worked on decentralized justice systems, tokenization of governance, and of course crypto-currencies.
Yaroslav Kozhevnikov, Developer
Yaroslav Kozhevnikov has been a professional software developer for over 6 years. His past development projects have included the following.
Verifying subset of ASN1.C compiler, specifically the encoding/decoding of primitive types
The backend for the exchange (fiat to crypto) based on the Lightning Network
An e-learning project, rewriting parsers for the existing storage format and worked on the backend for the platform
The backend for the smart-contract startup for businesses (the idea was to have templated contracts for businesses, that they can use to hire workers/contractors and do other business related items), as well as on the smart contract language (embedded in Haskell) itself. The service was based on the Solana blockchain.
Working as a contractor to help refactor, clean and modernize a database for a company under NDA. This contract included helping profile and optimize contracts for the Cardano.
Yaroslav is currently working with François-René on the Sky backend, such as nodes, data structures for the data availability and handling infrastructure setup, among other features.
Manuel Simoni
Manuel has almost 30 years of programming experience and has worked in bio-, edu-, ad-, and fin-tech. He is fascinated by blockchain's potential to create previously impossible systems(hyperstructures). His hobbies are designing and implementing programming languages, operating systems, and hypermedia platforms.
Zoe Braiterman, Technical Community Manager
Zoe Braiterman has experience ranging from cyber security, data science and system architecture to product development. Passionate about helping startups to scale, she also has experience as a teacher and business manager. Her work as a security consultant has included diversity and education initiatives in collaboration with UN Women, along with similar diversity leadership initiatives utilizing artificial intelligence and other technologies, and she brings her passion for change making and social impact to the Web3 space.
Peter Hubshman, Chief Financial Officer
Peter is a finance and operations expert focusing on early round startups. With origins in private equity, fund management and leveraged buyouts, in the early 2000’s he operated Internet Real Estate Group, a Web 2.0 studio in Boston which successfully developed businesses including Creditcards.com; Phone.com; Luggage.com; Jeans.com and a dozen other early primary domain businesses. There, his pioneering team of engineers created some of the earliest successful affiliate marketing and advertising platforms on the Internet, and were early experts in search engine optimization.
Alexander Smart, Chief Legal Officer
Alexander has always thought fast, but learned to think deep and sharp at UChicago. After studying law at Pepperdine, he spent nearly fifteen years guiding executives and decision makers through litigation, in matters ranging from shoplifting and speeding tickets to multi-forum international investment bank disputes. His practice honed his ability to quickly assimilate and master new information, and deliver that information clearly at any level of sophistication. Tiring of courthouses, he found his skills were readily applicable and desperately needed in the blockchain space.