Skip to main content

24 posts tagged with "plutus-core"

View All Tags

Plutus Core Team Update

· 2 min read
Ziyang Liu
Software Engineering Lead

High level summary​

The Plutus team has published release 1.71.0.0, which includes the full Plutus V4 script context and will be integrated into node release 11.2. The release also adds Plutus Core language version 1.2.0 and the cost models for keepPolicies and dropPolicies (CIP-0168).

We've opened CIP-0205, which proposes to remove scope checking for Plutus scripts. As usual, we encourage everyone to read it and leave comments - we would like as much feedback as possible.

Other than these, casing on built-in types is now specified in the Plutus Core specification, and the guardrail script has been made smaller and cheaper by using BuiltinList and BuiltinPair. Work in progress includes making the uplc and plc executables easier to obtain (publishing them to CHaP, and shipping prebuilt macOS binaries built by Hydra), and bringing the specification further up-to-date.

Key Pull Requests Merged​

Pull Requests In Progress​

Plutus Core Team Update

· 2 min read
Ziyang Liu
Software Engineering Lead

High level summary​

The Plutus team has delivered a number of September milestones, and is putting the finishing touches on the remaining ones.

A new with-crypto cabal flag makes it possible to build Plinth and Plutus without the system crypto C libraries. We've also further improved the usability of the certifier in the uplc cli tool.

Work in progress includes the cost models for keepPolicies and dropPolicies (CIP-0168), and a CIP for removing the scope check during script deserialization.

Key Pull Requests Merged​

Pull Requests In Progress​

Plutus Core Team Update

· 2 min read
Ziyang Liu
Software Engineering Lead

High level summary​

Casing on Data has been merged: case on a Data.Constr value now dispatches directly on the constructor tag, which, combined with the recently added dropList, significantly reduces the cost of consuming Data-encoded values. This is a Plutus V4 feature, and we are also working on specifying casing on built-in types in the Plutus Core specification.

Work on the Value builtins (CIP-0168) continues: the keepPolicies and dropPolicies builtins have been added, the cost model for policies has been merged, and the cost models for keepPolicies and dropPolicies are in progress. Like the other new builtins, these are gated behind a future protocol version and cannot be used on-chain until Dijkstra.

On the Plutus V4 ScriptContext front, we are implementing a different encoding for product types using List instead of Constr, which makes them cheaper to decode. We are also improving the usability of the certifier in the uplc and plc tools.

Key Pull Requests Merged​

Pull Requests In Progress​

Plutus Core Team Update

· 2 min read
Ziyang Liu
Software Engineering Lead

High level summary​

The Plutus team has published release 1.68.0.0, which includes the Plutus V4 ledger API types. Note that Plutus V4 remains under development, and these types may still change before Dijkstra.

Getting started with Plinth is now much easier: the new install script in plinth-template sets up a Plinth project with a single command, taking care of installing the required tooling. See the updated documentation for details.

Work on Plutus V4 language features continues. Casing on Data has been implemented: case on a Data.Constr value can now dispatch directly on the constructor tag, which, combined with the recently added dropList, yields a decent performance boost. We've also added the assetCount builtin (CIP-0168) along with its cost model, merged the cost model for multiIndexArray (CIP-0156), and continued formalizing builtins in the Agda metatheory.

We also continue to welcome feedback on CPS-0034 - Extending Plutus Core conformance testing.

Key Pull Requests Merged​

Pull Requests In Progress​

Plutus Core Team Update

· 2 min read
Ziyang Liu
Software Engineering Lead

High level summary​

The Plutus team has recently opened two CIPs and one CPS for review. We encourage everyone to read them and leave comments - we would like as much feedback as possible.

  • CIP-0194 adds a Match node to UPLC for matching on builtin constants (primarily Data). This will make consuming script contexts in validators much cheaper than the status quo.
  • CIP-0195 specifies the Data encoding of the Plutus V4 ledger types.
  • A new CPS aims to build community consensus on how to expose our property tests, and tests for older protocol and language versions, to alternative node and UPLC evaluator implementers with minimal integration effort.

Other than these, we've merged the CollapseCase pass, which rewrites list casing into dropList whenever applicable; the uplc tool now deduces input and output formats from file extensions; and the Plutus V4 ledger API types have been released in 1.67.0.0.

Key Pull Requests Merged​

Pull Requests In Progress​