nibiru

module
v2.0.0-rc.14 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 18, 2024 License: Apache-2.0

README ΒΆ

Nibiru Chain

Go Reference Nibiru Test workflow Nibiru Test workflow GitHub Discord Badge

Nibiru Chain is a breakthrough Layer 1 blockchain and smart contract ecosystem providing superior throughput, improved security, and a high-performance EVM execution layer. Nibiru aims to be the most developer-friendly and user-friendly smart contract ecosystem, leading the charge toward mainstream Web3 adoption by innovating at each layer of the stack: dApp development, scalable blockchain data indexing, consensus optimizations, a comprehensive developer toolkit, and composability across multiple VMs.

βš™οΈ β€” Documentation

πŸ’¬ β€” Community

If you have questions or concerns, feel free to connect with a developer or community member in the Nibiru Discord. We also have active communities on Twitter and Telegram.

Discord Tweet Telegram

🧱 β€” Components of Nibiru

Module Description
Wasm Implements the execution environment for WebAssembly (WASM) smart contracts. CosmWasm smart contracts are Rust-based, Wasm smart contracts built for enhanced security, performance, and interoperability. See our CosmWasm sandbox monorepo (nibiru-wasm) for the protocol's core smart contracts.
EVM Implements Nibiru EVM, which manages an Ethereum Virtual Machine (EVM) state database and enables the execution of Ethereum smart contracts. Nibiru EVM is an extension of "geth" along with "web3" and "eth" JSON-RPC methods.
Devgas The devgas module of Nibiru Chain shares contract execution fees with smart contract developers. This aims to increase the adoption of Nibiru by offering CosmWasm smart contract developers a direct source of income based on usage.
Epochs The epochs module allows other modules to set hooks to be called to execute code automatically on a period basis. For example, "once a week, starting at UTC-time = x". epochs creates a generalized epoch interface.
Inflation Implements the tokenomics for Nibiru.
Oracle Nibiru accurately prices assets using a native, system of decentralized oracles, and communicates with other Cosmos layer-1 chains using the Inter-Blockchain Communication (IBC) protocol. Nibi-Oracle handles the voting process for validators that act as oracles by updating data feeds.
Common Helper and utility functions to be utilized by other x/ modules.

Nibiru is built with the Cosmos-SDK on Tendermint Core consensus and communicates with other blockchain chains using the Inter-Blockchain Communication (IBC) protocol.


⛓️ β€” Building: make commands

Installation instructions for the nibid binary can be found in INSTALL.md.

Recommended minimum specs:

  • 2CPU, 4GB RAM, 100GB SSD
  • Unix system: MacOS or Ubuntu 18+
Nibid CLI

To simply access the nibid CLI, run:

make install

Usage instructions for the nibid CLI are available at docs.nibiru.fi/dev/cli and the Nibiru Module Reference.

Running a Local Node

On a fresh clone of the repo, simply run:

make localnet

and open another terminal.

Generate the protobufs
make proto-gen
Linter

We use the golangci-lint linter. Install it and run

golangci-lint run

at the root directory. You can also install the VSCode or Goland IDE plugins.

Multiple Nodes

Run the following commands to set up a local network of Docker containers running the chain.

make build-docker-nibidnode

make localnet-start

License

Unless a file notes otherwise, it will fall under the MIT License.

Directories ΒΆ

Path Synopsis
app
sim
cmd
eth
rpc
x
common/omap
Package omap defines a generic-based type for creating ordered maps.
Package omap defines a generic-based type for creating ordered maps.
common/testutil
Package nullify provides methods to init nil values structs for test assertion.
Package nullify provides methods to init nil values structs for test assertion.
common/testutil/testnetwork
Package "testnetwork" implements and exposes a fully operational in-process Tendermint test network that consists of at least one or potentially many validators.
Package "testnetwork" implements and exposes a fully operational in-process Tendermint test network that consists of at least one or potentially many validators.
devgas/v1/types
Package types is a reverse proxy.
Package types is a reverse proxy.
epochs/types
Package types is a reverse proxy.
Package types is a reverse proxy.
evm
evm/embeds
Package "embeds" adds access to files (smart contracts) embedded in the Go runtime.
Package "embeds" adds access to files (smart contracts) embedded in the Go runtime.
evm/precompile
Package precompile implements custom precompiles for the Nibiru EVM.
Package precompile implements custom precompiles for the Nibiru EVM.
evm/statedb
The "evm/statedb" package implements a go-ethereum vm.StateDB with state management and journal changes specific to the Nibiru EVM.
The "evm/statedb" package implements a go-ethereum vm.StateDB with state management and journal changes specific to the Nibiru EVM.
inflation
Package inflation implements the token inflation for the staking and utility token of the network as described by the "Community" portion of the Nibiru Chain tokenomics.
Package inflation implements the token inflation for the staking and utility token of the network as described by the "Community" portion of the Nibiru Chain tokenomics.
inflation/types
Package types is a reverse proxy.
Package types is a reverse proxy.
oracle/keeper
nolint
nolint
oracle/types
Package types is a reverse proxy.
Package types is a reverse proxy.
sudo/types
Package types is a reverse proxy.
Package types is a reverse proxy.
tokenfactory/types
Package types is a reverse proxy.
Package types is a reverse proxy.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL