Skip to content

Commit

Permalink
docs: 📝 Explain MacOS specific setups for developers.
Browse files Browse the repository at this point in the history
  • Loading branch information
Chralu authored and Neylix committed Jan 20, 2025
1 parent aafff5a commit 1853534
Showing 1 changed file with 49 additions and 2 deletions.
51 changes: 49 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Current implemented features:
- Node election: heuristic validation and storage node selection
- P2P: Inter-node communication, supervised connection to detect the P2P view of nodes in almost real-time
- Transaction mining: ARCH consensus
- Beacon chain: Maintains a global view of the network (transactions, P2P view)
- Beacon chain: Maintains a global view of the network (transactions, P2P view)
- Self-Repair: Self-healing mechanism allowing to resynchronize missing transactions
- Embedded explorer leveraging sharding to retrieve information
- Custom Binary protocol for data transmission
Expand All @@ -39,6 +39,51 @@ Current implemented features:

## Running a node for development purpose

### Using Elixir - MacOS specific setups

On Apple Silicon architecture, you might encounter issues running nodes.

Here is how to make it work.

#### Install openssl using brew

```sh
brew install openssl@3
```

#### Install erlang using `asdf`

```sh
cd <project_directory>
KERL_CONFIGURE_OPTIONS="--disable-jit --without-javac --without-wx --with-ssl=$(brew --prefix openssl@3)" asdf install
```

#### Locally update `exla` dependency

Edit `mix.exs` and replace the following `deps` item :

```elixir
{:exla, "~> 0.5"},
```

by

```elixir
{:exla, "~> 0.5.3"},
```

Then, install dependencies as usual :

```sh
mix deps.get
```

#### 🎉 You can run the node as usual

```sh
iex -S mix
```

### Using Elixir

Requirements:
Expand All @@ -54,7 +99,7 @@ Requirements:
Platforms supported:

- Linux (Ubuntu 18.04)
- Mac OS X
- Mac OS X ([See specific setups](#using-elixir---macos-specific-setups))

At first, clone the repository:

Expand Down Expand Up @@ -88,6 +133,7 @@ make clean
```

To start mutiple node, you need to update some environment variables:

```bash
# Start the first node
iex -S mix
Expand Down Expand Up @@ -125,6 +171,7 @@ docker compose up node3
```

To start all nodes at the same time:

```bash
docker compose up
```
Expand Down

0 comments on commit 1853534

Please sign in to comment.