Developing with Plutus Application Backend requires a setup and configuration process that will slow developer adoption of Cardano.Â
We will offer services for users to run Contracts as a Service that leverage shared off-chain infrastructure with private containers.
This is the total amount allocated to Contracts as a Service.
How do Contracts as a Service help Cardano?
We will offer a hosted Plutus service that allows users to run Contracts as a Service that leverage a shared off-chain infrastructure as a foundation for lightweight contract containers. Providing long running, resource intensive Alonzo Nodes and Chain Indexes for both mainnet and testnet as shared services to isolated lightweight containers means that users only need to spin up a Plutus Application Backend (and Wallet, as required) in their container to host off-chain code. Â
We propose:
How are we helping meet Fund 8 Goals for Ecosystem Foundations and Development of dApps and Integrations?
Developing with Plutus and Plutus Application Backend requires a setup and configuration process that (currently) will slow developer adoption of Cardano. Participants in the Plutus Pioneers Program Cohort 3 reported experiences and problems (via Discord, StackExchange, and weekly course Q&A) that ranged from many hours to days to start the course, and similar durations later in the course when a full node for either CLI-based or PAB-based transactions were required for coursework.  Further, deployment as a dApp provider requires hosting the same resource intensive stack, which puts grassroots startup beyond the reach of many prospective developers.
Our service can be used as either a PAB Helper endpoint, or as a full node as described in the PABÂ documentation.
This service, as indicated in attached illustrations, will help bridge a technology gap until âlightâ PAB is available for in-browser and in-app use, and prior to that, until a remote wallet is able to (natively) balance transactions.
Until browser wallets can support transaction balancing natively, dApps must rely on hosted wallets and hosted PAB (or CLI) to complete transactions. Transactions may be manually balanced on the client side, but the process is complex and potentially error prone.Â
Since we may assume that most developers will not also be stake pool operators with ready access to fully synchronized nodes, we can further surmise that simple, low-cost contract hosting will be desirable for:
How will this service be used by the community?
PAB documentation offers three use cases for PAB, and we have added a fourth for educational use.
Please see attached diagrams for variations of those four use cases as adapted for a container / shared infrastructure implementation pattern we propose.
Assumptions:
What are areas of potential criticism for the proposal?
Milestones for Evaluation of Progress
Primary goal: CaaS in place for Vasil hard fork (July?), though planned timing for the fork seems difficult to verify.
Following successful award: Four, Four-Week Iterations, Plus Planning Week and Cleanup Week (18-week total duration)
Week 1: Iteration Zero: Stories & Estimation, Golden Story, Half Day Iteration Planning Meeting (IPM #1)
Week 2: Kickoff
Week 4: Iteration 1 Midpoint Check
Week 6: IPM #2
Week 7: Anticipated Container Beta
Week 8: Iteration 2 Midpoint Check
Week 10: IPM #3
Week 12: Iteration 3 Midpoint Check
Week 13: Anticipated UI Beta
Week 14: Re-estimate Remaining Stories, Half Day Iteration Planning Meeting (IPM #4)
Week 16: Iteration 4 Midpoint Check
Week 17: Project Closeout Preparation
Week 18: Release
Budget:
$21,120 Front End / API Developer: 192 Hours @ $110
$21,750 PAB / Haskell Developer: 145 Hours @ $150
$21,960 Sysadmin: 180 Hours @ $122
$20,800 First Nine Months Shared Bare Metal Hosting
$2,000 Security Audit
$9,700 Allowance for Unforeseen within Range of Estimate Accuracy +/- 10%
Requested Funds in USD:
$97,330
David Jacobsen has more than twenty years of experience in engineering, software development, consulting, and traditional IT management. Heâs experienced with international teams and products after having lived and worked in The Netherlands and having led multi-national development projects for a major US energy supplier. David recently completed the Plutus Pioneer Program and is excited about pairing new understanding and experiences with Cardano and PAB with traditional development skills. He holds a BS in Engineering from the Colorado School of Mines.
https://www.linkedin.com/in/jacobsendavid/
Brice Sinkule has more than five years of experience in front end development with Reactjs and React Native using Redux state management. In his current role as a lead front end developer, he contributes across all mobile and web projects which involve building a platform that supports video content management, content delivery, scheduling, and user enrollment.
https://www.linkedin.com/in/brice-sinkule/
Hal Arnold is a seasoned Software Professional, Mentor and Executive Leader that is skilled at building, guiding and nurturing high performance agile teams [xp, scrum/kanban] specializing in high performance functional programming focused on quality code. He is an experienced pair programmer and pair programming team lead with a long history in TDD/BDD. Hal recently completed the Plutus Pioneer Program and is excited to help remove some of the complexity of getting started with Plutus for other pioneering minded developers.
https://www.linkedin.com/in/hal-arnold-a9380/
Progress can be measured with three distinct and visible way points for technical auditability:
Performance and usability audits will require a more qualitative approach (and likely) iterative approach.
A technical success would include an end-to-end test of features, starting with UI creation of a new user and container, connection to the container to deploy a contract, and successful execution of the contract on the testnet.
An operational success would include successful execution of mainnet contracts by a number of distinct tenants that produce expected outcomes with acceptable performance.
A community success would include adoption by Plutus Pioneer Program as an integrated part of coursework.
A back-slapping success would include adoption also by Marlowe users, or by bespoke contract execution providers that currently rely on dedicated hosting at a higher cost. Container modification may be necessary, but nothing in the hosting strategy precludes non-plutus implementations. It is simply crafted for Plutus / Haskell first as it is part of core Cardano strategy.
This is a new proposal.
System Administrators with high availability experience in fully virtualized environments; full stack veterans; developers from Plutus Pioneers Program.