Categorygithub.com/MetalBlockchain/metalgo
module
1.11.10-rc.4
Repository: https://github.com/metalblockchain/metalgo.git
Documentation: pkg.go.dev

# README


Node implementation for the Metal network. At its core Metal is a fork of the Avalanche project and aims to maintain upstream changes.

Installation

The minimum recommended hardware specification for nodes connected to Mainnet is:

  • CPU: Equivalent of 8 AWS vCPU
  • RAM: 16 GiB
  • Storage: 250GiB
  • OS: Ubuntu 20.04/22.04 or macOS >= 12
  • Network: Reliable IPv4 or IPv6 network connection, with an open public port.

If you plan to build MetalGo from source, you will also need the following software:

  • Go version >= 1.20.10
  • gcc
  • g++

Building From Source

Clone The Repository

Clone the MetalGo repository:

git clone [email protected]:MetalBlockchain/metalgo.git
cd metalgo

This will clone and checkout the master branch.

Building the Metal Executable

Build Metal using the build script:

./scripts/build.sh

The Metal binary, named metalgo, is in the build directory.

Docker Install

Make sure Docker is installed on the machine - so commands like docker run etc. are available.

Building the docker image of latest metalgo branch can be done by running:

./scripts/build_image.sh

To check the built image, run:

docker image ls

The image should be tagged as metalblockchain/metalgo:xxxxxxxx, where xxxxxxxx is the shortened commit of the Metal source it was built from. To run the Metal node, run:

docker run -ti -p 9650:9650 -p 9651:9651 metalblockchain/metalgo:xxxxxxxx /metalgo/build/metalgo

Running Metal

Connecting to Mainnet

To connect to the Metal Mainnet, run:

./build/metalgo

You should see some pretty ASCII art and log messages.

You can use Ctrl+C to kill the node.

Connecting to Tahoe

To connect to the Tahoe Testnet, run:

./build/metalgo --network-id=tahoe

Supported Platforms

MetalGo can run on different platforms, with different support tiers:

  • Tier 1: Fully supported by the maintainers, guaranteed to pass all tests including e2e and stress tests.
  • Tier 2: Passes all unit and integration tests but not necessarily e2e tests.
  • Tier 3: Builds but lightly tested (or not), considered experimental.
  • Not supported: May not build and not tested, considered unsafe. To be supported in the future.

The following table lists currently supported platforms and their corresponding MetalGo support tiers:

ArchitectureOperating systemSupport tier
amd64Linux1
arm64Linux2
amd64Darwin2
amd64Windows3
armLinuxNot supported
i386LinuxNot supported
arm64DarwinNot supported

To officially support a new platform, one must satisfy the following requirements:

MetalGo continuous integrationTier 1Tier 2Tier 3
Build passes
Unit and integration tests pass
End-to-end and stress tests pass

Security Bugs

We and our community welcome responsible disclosures.

We're working on a bug bountry program, in the meantime please submit any bugs or vulnerabilities to [email protected]

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Package codec is a generated GoMock package.
No description provided by the author
Package database is a generated GoMock package.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Package message is a generated GoMock package.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Package vms is a generated GoMock package.
No description provided by the author
No description provided by the author