Skip to content

Commit 241c8e6

Browse files
JuanCoRorv-auditorbbyalcinkaya
authored
Update installation instructions (#257)
* Readme.md: update dependency installation instructions * README.md: add K repo link to description * Set Version: 0.1.53 * Set Version: 0.1.55 * fix typo * remove pandoc * Set Version: 0.1.56 --------- Co-authored-by: devops <[email protected]> Co-authored-by: Burak Bilge Yalçınkaya <[email protected]>
1 parent 33ba335 commit 241c8e6

File tree

1 file changed

+77
-3
lines changed

1 file changed

+77
-3
lines changed

README.md

Lines changed: 77 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Semantics of Elrond and Mandos
22
==============================
33

4-
This repository the semantics of the [MultiversX](https://multiversx.com/) (formerly Elrond) blockchain in K on top of WebAssembly semantics ([KWasm](https://github.com/kframework/wasm-semantics)).
4+
This repository the semantics of the [MultiversX](https://multiversx.com/) (formerly Elrond) blockchain in [K](https://github.com/runtimeverification/k) on top of WebAssembly semantics ([KWasm](https://github.com/kframework/wasm-semantics)).
55

66

77
## Installation
@@ -10,11 +10,85 @@ This repository the semantics of the [MultiversX](https://multiversx.com/) (form
1010

1111
* Python3
1212
* [WABT v1.0.13](https://github.com/WebAssembly/wabt/tree/1.0.13)
13-
* K framework ([version](./deps/wasm-semantics/deps/k_release))
13+
* K Framework ([version](./deps/k_release))
1414
* [Poetry](https://python-poetry.org/docs/#installing-with-the-official-installer)
1515
* [Rustup and `sc-meta`](https://docs.multiversx.com/developers/meta/sc-meta)
1616

17-
See [Dockerfile](./Dockerfile) for installation details.
17+
### Installing Dependencies
18+
19+
Python3 and WABT should be installable via your system's package manager alongside with the follwoing other dependencies.
20+
We use the Ubuntu package manager as an example:
21+
```bash
22+
sudo apt-get install --yes \
23+
autoconf \
24+
libtool \
25+
cmake \
26+
curl \
27+
wget \
28+
libcrypto++-dev \
29+
libprocps-dev \
30+
libsecp256k1-dev \
31+
libssl-dev \
32+
python3 \
33+
python3-pip \
34+
python3-venv \
35+
wabt
36+
```
37+
38+
#### K Framework
39+
40+
You need to install the [K Framework](https://kframework.org/) on your system. While you can build it [from soucre](https://github.com/runtimeverification/k?tab=readme-ov-file#prerequisite-install-guide), the fastest way is via the [kup package manager](https://github.com/runtimeverification/kup).
41+
42+
To install `kup` simply run
43+
```bash
44+
bash <(curl https://kframework.org/install)
45+
```
46+
Once `kup` is installed, to get the correct version of K run:
47+
```bash
48+
kup install k.openssl.procps.secp256k1 --version v$(cat deps/k_release)
49+
```
50+
51+
#### Poetry
52+
53+
To install Poetry you can use the following command
54+
```bash
55+
curl -sSL https://install.python-poetry.org | python3 -
56+
```
57+
For more complete instructions see the [official installer](https://python-poetry.org/docs/#installing-with-the-official-installer).
58+
59+
#### Rustup
60+
61+
To install Rust and the necessary crates you have to [install `rustup`](https://www.rust-lang.org/tools/install), which can be done by ruuning the following on a Unix-like OS:
62+
```bash
63+
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
64+
```
65+
Or, if you want to install a more fine-tuned version for this project:
66+
```bash
67+
wget -O rustup.sh https://sh.rustup.rs && \
68+
chmod +x rustup.sh && \
69+
./rustup.sh --verbose --default-toolchain nightly-2023-12-11 --target wasm32-unknown-unknown -y
70+
```
71+
72+
#### `sc-meta`
73+
74+
[`sc-meta`](https://docs.multiversx.com/developers/meta/sc-meta) is the [MultiversX](https://multiversx.com/) smart contract managing tool. To install it, you can run the following
75+
```bash
76+
cargo install multiversx-sc-meta --locked
77+
```
78+
However, if you run into problems with the above command, this might be because of your `rustup` version. Try installing it with a nightly version of `rustup` alongside your current one:
79+
```bash
80+
rustup install nightly
81+
```
82+
and to install `sc-meta` with the nightly version run:
83+
```bash
84+
cargo +nightly install multiversx-sc-meta --locked
85+
```
86+
If the above doesn't succeed try installing a [less recent version](https://crates.io/crates/multiversx-sc-meta/versions) of the tool. For instance, to install version `0.48.1` run:
87+
```bash
88+
cargo +nightly install multiversx-sc-meta --locked --version 0.48.1
89+
```
90+
91+
See [Dockerfile](./Dockerfile) for additional installation details.
1892

1993
### Building the semantics
2094

0 commit comments

Comments
 (0)