Skip to content

Commit

Permalink
Merge pull request #325 from babylonchain/release/v0.2.0
Browse files Browse the repository at this point in the history
Release v0.2.0
  • Loading branch information
RafilxTenfen authored May 15, 2024
2 parents fb1d6f2 + 6e55450 commit e13904f
Show file tree
Hide file tree
Showing 94 changed files with 5,178 additions and 2,750 deletions.
6 changes: 3 additions & 3 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ orbs:
jobs:
build_lint_test:
machine:
image: ubuntu-2204:2022.10.1
image: ubuntu-2204:2024.01.1
resource_class: large
steps:
- go/install:
Expand Down Expand Up @@ -41,7 +41,7 @@ jobs:
build_docker:
machine:
image: ubuntu-2204:2022.10.1
image: ubuntu-2204:2024.01.1
resource_class: large
steps:
- checkout
Expand All @@ -63,7 +63,7 @@ jobs:

push_docker:
machine:
image: ubuntu-2204:2022.10.1
image: ubuntu-2204:2024.01.1
resource_class: large
steps:
- attach_workspace:
Expand Down
276 changes: 276 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

16 changes: 16 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,14 @@ endif
BUILD_TARGETS := build install
BUILD_FLAGS := --tags "$(build_tags)" --ldflags '$(ldflags)'

# Update changelog vars
ifneq (,$(SINCE_TAG))
sinceTag := --since-tag $(SINCE_TAG)
endif
ifneq (,$(UPCOMING_TAG))
upcomingTag := --future-release $(UPCOMING_TAG)
endif

all: build install

build: BUILD_ARGS := $(build_args) -o $(BUILDDIR)
Expand Down Expand Up @@ -68,3 +76,11 @@ proto-gen:
mock-gen:
mkdir -p $(MOCKS_DIR)
$(MOCKGEN_CMD) -source=clientcontroller/interface.go -package mocks -destination $(MOCKS_DIR)/babylon.go

.PHONY: mock-gen

update-changelog:
@echo ./scripts/update_changelog.sh $(sinceTag) $(upcomingTag)
./scripts/update_changelog.sh $(sinceTag) $(upcomingTag)

.PHONY: update-changelog
50 changes: 10 additions & 40 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ any special hardware requirements
and can operate on standard mid-sized machines
running a UNIX-flavored operating system.
It consists of the following programs:

- *Babylon full node*: An instance of a Babylon node connecting to
the Babylon network. Running one is not a strict requirement,
but it is recommended for security compared to trusting a third-party RPC node.
Expand All @@ -31,22 +32,21 @@ The following graphic demonstrates the interconnections between the above progra

![Finality Provider Interconnections](./docs/finality-toolset.png)


## 2. Installation

#### Prerequisites
### Prerequisites

This project requires Go version 1.21 or later.

Install Go by following the instructions on
the [official Go installation guide](https://golang.org/doc/install).

#### Downloading the code
### Downloading the code

To get started, clone the repository to your local machine from Github:

```bash
git clone git@github.com:babylonchain/finality-provider.git
git clone https://github.com/babylonchain/finality-provider.git
```

You can choose a specific version from
Expand All @@ -57,7 +57,7 @@ cd finality-provider # cd into the project directory
git checkout <release-tag>
```

#### Building and installing the binary
### Building and installing the binary

At the top-level directory of the project

Expand All @@ -80,48 +80,18 @@ export PATH=$HOME/go/bin:$PATH
echo 'export PATH=$HOME/go/bin:$PATH' >> ~/.profile
```

To build without installing,

```bash
make build
```

The above command will put the built binaries in a build directory with the
following structure:
```bash
ls build
├── eotsd
├── fpcli
└── fpd
```

Another common issue with compiling is that some of the dependencies have
components written in C. If a C toolchain is absent, the Go compiler will throw
errors. (Most likely it will complain about undefined names/types.) Make sure a
C toolchain (for example, GCC or Clang) is available. On Ubuntu, this can be
installed by running

```bash
sudo apt install build-essential
```

## 3. Setting up a finality provider

#### 3.1. Setting up a Babylon Full Node
### 3.1. Setting up a Babylon Full Node

Before setting up the finality provider toolset,
an operator must ensure a working connection with a Babylon full node.
It is highly recommended that operators run their own node to avoid
trusting third parties. Instructions on how to set up a full Babylon node
can be found in
[the Babylon documentation](https://docs.babylonchain.io/docs/user-guides/btc-timestamping-testnet/setup-node).

The finality provider requires a Babylon keyring with loaded funds to be attached to it
in order to be able to send transactions to Babylon.
To setup such a keyring, follow the instructions in
[the Babylon documentation](https://docs.babylonchain.io/docs/user-guides/btc-timestamping-testnet/getting-funds).
can be found in
[the Babylon documentation](https://docs.babylonchain.io/docs/user-guides/btc-staking-testnet/setup-node).

#### 3.2. Setting up the EOTS Manager
### 3.2. Setting up the EOTS Manager

After a node and a keyring have been set up,
the operator can set up and run the
Expand All @@ -130,7 +100,7 @@ A complete overview of the EOTS manager, its operation, and
its configuration options can be found in the
[EOTS Manager page](docs/eots.md)

#### 3.3. Setting up a Finality Provider
### 3.3. Setting up a Finality Provider

The last step is to set up and run
the finality daemon.
Expand Down
Loading

0 comments on commit e13904f

Please sign in to comment.