CanDoItAll.Ledger.Engine
0.1.18
dotnet add package CanDoItAll.Ledger.Engine --version 0.1.18
NuGet\Install-Package CanDoItAll.Ledger.Engine -Version 0.1.18
<PackageReference Include="CanDoItAll.Ledger.Engine" Version="0.1.18" />
<PackageVersion Include="CanDoItAll.Ledger.Engine" Version="0.1.18" />
<PackageReference Include="CanDoItAll.Ledger.Engine" />
paket add CanDoItAll.Ledger.Engine --version 0.1.18
#r "nuget: CanDoItAll.Ledger.Engine, 0.1.18"
#:package CanDoItAll.Ledger.Engine@0.1.18
#addin nuget:?package=CanDoItAll.Ledger.Engine&version=0.1.18
#tool nuget:?package=CanDoItAll.Ledger.Engine&version=0.1.18
CanDoItAll.Ledger.Engine
Deterministic validation and execution for CanDoItAll Ledger transactions.
The engine checks transaction structure, references, signatures, authorities, asset conservation, token rules, business-object transitions, replay, and chain consistency. Choose it for an in-process ledger host or for independent verification of Ledger history.
Requirements
- .NET 10
- A store and cryptographic services compatible with
CanDoItAll.Ledger.Core
Install
dotnet add package CanDoItAll.Ledger.Engine
Run A Shape Check
using CanDoItAll.Ledger.Core;
using CanDoItAll.Ledger.Engine;
static ValidationResult ValidateGenesisShape(Address recipient)
{
var transaction = new LedgerTransaction(
new LedgerId("agent-expenses"),
ScenarioId: null,
Version: 1,
Kind: TransactionKind.Genesis,
SigningMode: SigningMode.Independent,
Timestamp: DateTimeOffset.UtcNow,
Inputs: [],
Outputs:
[
new TransactionOutput(
0,
recipient,
Amount.FromDecimal(1_000m))
],
Data: null);
ValidationResult shape =
new TransactionShapeValidator().ValidateShape(transaction);
return shape;
}
This example checks only the transaction shape. It does not confirm references, signatures, authority, conservation, or state transitions. Supply a recipient derived from real account key material so the resulting allocation can be spent.
Authoritative Execution
Compose LedgerExecutor with:
ILedgerStoreor, preferably,ILedgerConfirmationStore;ITransactionHasherandISignaturePayloadBuilder;ILedgerAdminSigner;ITimeProvider;ISignatureProviderRegistry;- the required issuance and token-creation policies.
Call LedgerExecutor.SubmitAsync(...) and inspect the returned
LedgerSubmitResult. An ILedgerConfirmationStore provides an atomic
confirmation boundary; a plain store cannot coordinate confirmations across
independent processes.
Correctness Notes
- Preflight and shape validation are early gates, not proof of acceptance.
- Keep clocks and policy inputs explicit so replay and tests remain deterministic.
- Preserve canonical hash, signing, and ledger-sequence behavior when replacing a store or signer.
- Use
LedgerChainVerifierandLedgerSemanticReplayVerifierwhen auditing persisted history. - Surface validation errors to callers; do not convert a rejected transaction into an apparent success.
See the runtime architecture, Core contracts, and full source.
This package is part of the CanDoItAll ecosystem and uses the repository's MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- CanDoItAll.Ledger.Core (>= 0.1.18)
- CanDoItAll.Ledger.Cryptography (>= 0.1.18)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on CanDoItAll.Ledger.Engine:
| Package | Downloads |
|---|---|
|
CanDoItAll.Ledger.BusinessObjects
Account, business-object, rule, commerce, secure-messaging, and transaction-building services for CanDoItAll Ledger. |
|
|
CanDoItAll.Ledger.Components
Reusable Blazor components and workspaces for ledger accounts, transactions, business objects, analytics, and node operations. |
GitHub repositories
This package is not used by any popular GitHub repositories.