Home
Softono
f

fuellabs

Professional software vendor delivering innovative solutions on the Softono platform. Specialized in both open-source and proprietary software development.

Total Products
3

Software by fuellabs

fuel-core
Open Source

fuel-core

# Fuel Client [![build](https://github.com/FuelLabs/fuel-core/actions/workflows/ci.yml/badge.svg)](https://github.com/FuelLabs/fuel-core/actions/workflows/ci.yml) [![deepwiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/FuelLabs/fuel-core) [![crates.io](https://img.shields.io/crates/v/fuel-core?label=latest)](https://crates.io/crates/fuel-core) [![docs](https://docs.rs/fuel-core/badge.svg)](https://docs.rs/fuel-core/) [![discord](https://img.shields.io/badge/chat%20on-discord-orange?&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/xfpK4Pe) [![twitter](https://img.shields.io/twitter/follow/fuel_network)](https://x.com/fuel_network) Fuel client implementation. ## Versions currently used in networks | Network | Version | |----------|---------| | Fuel Ignition | 0.48.1 | | Testnet | 0.48.1 | | Devnet | 0.48.1 | ## Contributing If you are interested in contributing to Fuel, see our [CONTRIBUTING.md](CONTRIBUTING.md) guidelines for coding standards and review process. Before pushing any changes or creating pull request please run `source ci_checks.sh`. ## Building If you plan to use already pre-compiled binaries you can directly go to [Running a Ignition node](#running-a-ignition-node). ### System Requirements There are several system requirements including clang. #### MacOS ```bash brew update brew install cmake ``` #### Debian ```bash apt update apt install -y cmake pkg-config build-essential git clang libclang-dev ``` #### Arch ```bash pacman -Syu --needed --noconfirm cmake gcc pkgconf git clang ``` ### Rust setup You'll need `wasm32-unknown-unknown` target installed. ```bash rustup target add wasm32-unknown-unknown ``` ## Running a Ignition node If you want to participate in the Ignition network with your own node you can launch it following these simple commands. ### From pre-compiled binaries Follow : https://docs.fuel.network/docs/node-operator/fuel-ignition/mainnet-node/ ### From source Clone the `fuel-core` repository : ``` git clone https://github.com/FuelLabs/fuel-core.git ``` Go to the latest release tag for ignition on the `fuel-core` repository : ``` git checkout v0.45.1 ``` Build your node binary: ```bash make build ``` To run the node follow : https://docs.fuel.network/docs/node-operator/fuel-ignition/mainnet-node/ ## Running a Local network from source Clone the `fuel-core` repository : ``` git clone https://github.com/FuelLabs/fuel-core.git ``` Build your node binary: ```bash make build ``` To run the node follow : https://docs.fuel.network/docs/node-operator/fuel-ignition/local-node/ ## Setup to make contributions ### Compiling We recommend using `xtask` to build fuel-core for development: ```sh cargo xtask build ``` This will run `cargo build` as well as any other custom build processes we have such as re-generating a GraphQL schema for the client. ### Testing The [ci_checks.sh](ci_checks.sh) script file can be used to run all CI checks, including the running of tests. ```shell source ci_checks.sh ``` The script requires pre-installed tools. For more information run: ```shell cat ci_checks.sh ``` ## Running The service can be launched by executing `fuel-core run`. The list of options for running can be accessed via the `help` option: ```console $ ./target/debug/fuel-core run --help USAGE: fuel-core run [OPTIONS] OPTIONS: --snapshot <SNAPSHOT> Snapshot from which to do (re)genesis. Defaults to local testnet configuration [env: SNAPSHOT=] ... ``` For many development purposes it is useful to have a state that won't persist and the `db-type` option can be set to `in-memory` as in the following example. ### Example ```console $ ./target/debug/fuel-core run --db-type in-memory 2023-06-13T12:45:22.860536Z INFO fuel_core::cli::run: 230: Block production mode: Instant 2023-06-13T12:38:47.059783Z INFO fuel_core::cli::run: 310: Fuel Core version v0.18.1 2023-06-13T12:38:47.078969Z INFO new{name=fuel-core}:_commit_result{block_id=b1807ca9f2eec7e459b866ecf69b68679fc6b205a9a85c16bd4943d1bfc6fb2a height=0 tx_status=[]}: fuel_core_importer::importer: 231: Committed block 2023-06-13T12:38:47.097777Z INFO new{name=fuel-core}: fuel_core::graphql_api::service: 208: Binding GraphQL provider to 127.0.0.1:4000 ``` To disable block production on your local node, set `--poa-instant=false` ### Example ```console $ ./target/debug/fuel-core run --poa-instant=false 2023-06-13T12:44:12.857763Z INFO fuel_core::cli::run: 232: Block production disabled ``` ### Troubleshooting #### Publishing We use [`publish-crates`](https://github.com/katyo/publish-crates) action for automatic publishing of all crates. If you have problems with publishing, you can troubleshoot it locally with [`act`](https://github.com/nektos/act). ```shell act release -s GITHUB_TOKEN=<YOUR_GITHUB_TOKEN> -j publish-crates-check --container-architecture linux/amd64 --reuse ``` It requires GitHubToken to do request to the GitHub. You can create it with [this](https://docs.github.com/en/[email protected]/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) instruction. #### Outdated database If you encounter an error such as ```console thread 'main' panicked at 'unable to open database: DatabaseError(Error { message: "Invalid argument: Column families not opened: column-11, column-10, column-9, column-8, column-7, column-6, column-5, column-4, column-3, column-2, column-1, column-0" })', fuel-core/src/main.rs:23:66 ``` Clear your local database using: `rm -rf ~/.fuel/db` #### File descriptor limits On some macOS versions the default file descriptor limit is quite low, which can lead to IO errors with messages like `Too many open files` or even `fatal runtime error: Rust cannot catch foreign exceptions` when RocksDB encounters these issues. Use the following command to increase the open file limit. Note that this only affects the current shell session, so consider adding it to `~/.zshrc`. ```bash ulimit -n 10240 ``` #### Log level The service relies on the environment variable `RUST_LOG`. For more information, check the [EnvFilter examples](https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#examples) crate. Human logging can be disabled with the environment variable `HUMAN_LOGGING=false` ## Debugging See the guide on [debugging](docs/developers/debugging.md) for an overview on running a debug build of a local node. ## Docker & Kubernetes ```sh # Create Docker Image docker build -t fuel-core . -f deployment/Dockerfile # Delete Docker Image docker image rm fuel-core # Create Kubernetes Volume, Deployment & Service kubectl create -f deployment/fuel-core.yml # Delete Kubernetes Volume, Deployment & Service kubectl delete -f deployment/fuel-core.yml ``` ## GraphQL service The client functionality is available through a service endpoint that expect GraphQL queries. ### Transaction executor The transaction executor currently performs instant block production. Changes are persisted to RocksDB by default. - Service endpoint: `/v1/graphql` - Schema (available after building): `crates/client/assets/schema.sdl` The service expects a mutation defined as `submit` that receives a [Transaction](https://github.com/FuelLabs/fuel-vm/tree/master/fuel-tx) in hex encoded binary format, as [specified here](https://github.com/FuelLabs/fuel-specs/blob/master/src/tx-format/transaction.md).

Crypto & Blockchain
57K Github Stars
fuel-specs
Open Source

fuel-specs

# Fuel Specifications <!-- markdownlint-disable-next-line MD036 --> **Fuel: A Secure Decentralized Generalized Massively Scalable Transaction Ledger** This repository specifies the Fuel protocol, including the Fuel Virtual Machine (short: FuelVM), a blazingly fast verifiable blockchain virtual machine. ## mdbook The Fuel Specifications book is built with mdbook. Install `mdbook` and then open a new terminal session in order to run the subsequent commands ```sh cargo install mdbook ``` To build book: ```sh mdbook build ``` To serve locally: ```sh mdbook serve ``` ## Contributing Markdown files must conform to [GitHub Flavored Markdown](https://github.github.com/gfm/). Markdown must be formatted with: - [markdownlint](https://github.com/DavidAnson/markdownlint) - [Markdown Table Prettifier](https://github.com/darkriszty/MarkdownTablePrettify-VSCodeExt)

Crypto & Blockchain Documentation
1.8K Github Stars
sway-farm
Open Source

sway-farm

# sway-farm A simple farming game written in Sway. ## Running Locally Make sure you have [`fuelup`](https://docs.fuel.network/guides/installation/) installed and are using the `latest` toolchain. Install a Fuel-compatible wallet extension and copy your wallet address in b256 format (it should start with `0x` instead of `fuel`). In the frontend folder, open the `src/chainConfig.json` file and edit line 7 to use your address. This step will make sure your wallet has test funds on your local network. ```json { "owner": "0xYOUR_ADDRESS_HERE", "amount": "0x00000000FFFFFFFF", "asset_id": "0x0000000000000000000000000000000000000000000000000000000000000000" }, ``` Run the command below inside the `frontend` folder to start a local node, generate TypeScript types, and deploy the contract locally: ```sh cd frontend npx fuels dev ``` You should see the message `🎉 Dev completed successfully!`. Next, run the frontend locally with `npm start`. The contract ID will automatically be updated, but the asset ID won't, so you'll have to make sure that is updated everytime the contract redeploys. Make sure your wallet is also connected to your local network instead of the testnet.

Crypto & Blockchain
1.6K Github Stars