Skip to content

Commit 64b662d

Browse files
author
euonymos
committed
chore: update README
1 parent a509e2b commit 64b662d

File tree

4 files changed

+26
-52
lines changed

4 files changed

+26
-52
lines changed

README.md

Lines changed: 16 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,32 @@
1-
# CEM SDK
1+
# CEM Script
22

33
## Project pitch
44

5-
Define and reuse Cardano DApp logic via annotated CEM-machines, resulting in free implementations for:
5+
CEM Script is a framework to define Cardano DApp logic via annotated CEM-machines,
6+
resulting in free implementations for:
67

78
* On-chain scripts
8-
* Tx building/submission/resubmission on L1/emulated testnet
9-
* Tx parsing/indexing
9+
* Transaction building/submission (off-chain)
10+
* Transaction parsing/indexing
1011
* Automatically testing invariants
1112
* Human-readable specs
1213

13-
## Building
14+
## Documentation
15+
16+
* [Getting Started Guide](https://github.com/mlabs-haskell/cem-script/blob/master/docs/getting_started.md)
17+
* [Goals and Design](https://github.com/mlabs-haskell/cem-script/blob/master/docs/goals_and_design.md)
18+
* Article on [testing with CLB](TODO: link) is another introduction to testing CEM Script dApps.
1419

15-
Building is performed with cabal.
16-
Building requires `libblst` and `libsodium` installed.
20+
## Building
1721

18-
Arch Linux has `libblst` in AUR, nix are exemplified by IOHK,
19-
and manual installation is described here:
20-
https://github.com/input-output-hk/cardano-node-wiki/blob/main/docs/getting-started/install.md#installing-blst
22+
Building is performed with `cabal`inside IOG's `github:input-output-hk/devx` shell.
23+
See `.envrc` for details.
2124

2225
Make sure to `cabal update` before building.
2326

24-
The project uses `github:input-output-hk/devx` to make the development shell. See `.envrc` for details.
25-
2627
## Running tests
2728

28-
Tests are runned in emulated environment by default.
29-
30-
Just run: `cabal test`.
31-
32-
For development and fast response once could consider `ghcid`.
33-
34-
## Starting local devnet
35-
36-
Tests depend on localdevnet, which is runned in Docker.
37-
To start it do:
38-
39-
```bash
40-
./prepare-devnet.sh
41-
docker-compose -f docker-compose.devnet.yaml up
42-
sudo chown -R $USER:$USER ./devnet/
43-
```
44-
45-
## Devnet stalling bug
46-
47-
Sometimes devnet stalls, due to some bug, in that case one should restart it,
48-
and wipe directory `./devnet/db`. To look for stalling one could check:
49-
`CARDANO_NODE_SOCKET_PATH=./devnet/node.socket cardano-cli query tip --testnet-magic 42`. For properly working devnet slots should change
50-
and sync be marked as 100%.
51-
52-
On this bug:
53-
https://forum.cardano.org/t/restarting-custom-private-networks-cardano-node-forge35/116921
54-
55-
## Project status
29+
Tests are runned in emulated environment using
30+
[CLB](https://github.com/mlabs-haskell/clb).
5631

57-
Project is in early development stage and is funded by
58-
[Catalyst proposal](https://projectcatalyst.io/funds/10/f10-development-and-infrastructure/mlabs-cemscript-sdk-get-your-dapp-implementation-from-annotated-on-chain-logic-state-machine).
59-
Detailed milestones of proposal and their status [are available](https://milestones.projectcatalyst.io/projects/1000118) as well.
32+
Just run: `cabal run cem-script-test`.

docs/catalyst_milestone_reports.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@
1010
* Final code clean-up:
1111
* [PR#113 - finalize mutation tests](https://github.com/mlabs-haskell/cem-script/pull/113)
1212
* [PR#109 - cosmetic changes](https://github.com/mlabs-haskell/cem-script/pull/109)
13-
* Final tutorial and docs
13+
* Final tutorial and docs:
1414
* [PR on docs](https://github.com/mlabs-haskell/cem-script/pull/115)
1515
* [Getting Started Guide](https://github.com/mlabs-haskell/cem-script/pull/115/files#diff-31bcba2ccafa41d46fbbd6d1219f7f1e3b1fb3cad9faa8e4dc521bbb579dd7b3)
16-
* Updated [Goals And Design](TODO: link)
16+
* Updated [Goals And Design](https://github.com/mlabs-haskell/cem-script/pull/115/files#diff-ef1a1e144302d41f2687f34dc1885cd8434e6395aa5443c81a2bca8414911972)
17+
* [Closeout video](TODO: link)
1718

1819
## Clarifications on M3 Deliverables
1920

File renamed without changes.

docs/goals_and_design.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ and demonstrate them by listing specific problems that
1313
arouse in the existing dApps codebase.
1414

1515
Such problems are specific security vulnerabilities of different
16-
types. They are still common in development which increases
16+
types. They are still common in development which increases
1717
audit and support costs.
1818

1919
Also, this document describes how existing solutions
@@ -183,7 +183,7 @@ At least three errors of this kind are known in Cardano/Plutus
183183
interval logic, showing that it is not easy to do.
184184

185185
Another problem is keeping time logic in sync between on-
186-
and off-chain code. This is even harder given that Plutus'
186+
and off-chain code. This is even harder given that Plutus'
187187
time-to-slot conversion gets in the way.
188188
Slot time differences and overall need to make test cases match
189189
real blockchain behavior may lead to flaky test behavior.
@@ -192,7 +192,7 @@ Our script stages abstraction cover all those kinds of problems.
192192

193193
### Matching to off-chain logic
194194

195-
The problem of duplicating logic between on-chain and off-chain
195+
The problem of duplicating logic between on-chain and off-chain
196196
is twofold.
197197
Testing is essentially done off-chain, thus, one may easily miss
198198
that your on-chain code is not actually enforcing some parts of
@@ -256,7 +256,7 @@ for possible utxo changes.
256256

257257
Our project encodes scripts in the form of a deterministic machine,
258258
which contains enough information to construct transactions automatically.
259-
This also gives a way to check for potential on-chain
259+
This also gives a way to check for potential on-chain
260260
vs off-chain logic differences semi-automatically.
261261

262262
Examples:
@@ -371,14 +371,14 @@ but only partially covers
371371
While it, surely, can do transaction emulation,
372372
it, to the best of our knowledge, does not have a monad instance
373373
for real L1 blockchain. So one still cannot reuse the same code
374-
across tests and real blockchain Tx construction.
374+
across tests and real blockchain transaction construction.
375375

376376
`TxSkel` datatype is similar to the design we are implementing,
377377
and other parts of API have a lot of cool DX decisions.
378378
But `cooked-validators` lack script transition model,
379379
so it cannot provide declarative transaction submission error handling
380380
we aim to get because it does not have information to decide
381-
whether a specific Tx input is critical (like an auth token),
381+
whether a specific transaction input is critical (like an auth token),
382382
or can be re-selected again (like coin-selected ADA for payment).
383383

384384
Having a declarative transition model is even
@@ -394,7 +394,7 @@ to attack vectors missed by accident.
394394

395395
Our API presumes that means of on-chain validation,
396396
in our case behavior equivalence (AKA bi-similarity)
397-
of a declarative CEM state machine and a real on-chain
397+
of a declarative CEM state machine and a real on-chain
398398
script is verified and validated semi-automatically.
399399
Also, we plan to make some kind of the vulnerabilities covered by
400400
`cooked-validators` impossible by construction,

0 commit comments

Comments
 (0)