Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: 📝 Explain MacOS specific setups for developers. #1640

Merged
merged 1 commit into from
Jan 20, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading