Β
Β
Β
Β
πππ4π
OKP4
is a public dPoS layer 1 specifically designed to enable communities to trustlessly share data, algorithms and resources to build the Dataverse - An open world where everybody can create or participate in custom ecosystems (with common governance mechanisms, sharing rules, business models...) to build a new generation of dApps way beyond Decentralized Finance.
The protocol
okp4d
is the node of the OKP4 network built on the Cosmos SDK π« & Tendermint consensus, and designed to become a hub of incentivized data providers, developers, data scientists & users collaborating to generate value from data and algorithms.
Read more in the introduction blog post. For a high-level overview of the OKP4 protocol and network economics, check out the white paper.
Want to become a validator?
Validators are responsible for securing the okp4 network. Validator responsibilities include maintaining a functional node with constant uptime and providing a sufficient amount of $KNOW as stake. In exchange for this service, validators receive block rewards and transaction fees.
Want to become a validator? π Checkout the documentation!
Looking for a network to join ? π Checkout the networks!
The okp4d
blockchain currently supports the following builds:
Platform |
Arch |
Status |
Darwin |
amd64 |
β
|
Darwin |
arm64 |
β
|
Linux |
amd64 |
β
|
Linux |
arm64 |
β
|
Windows |
amd64 |
οΈπ« Not supported |
Note: as the blockchain depends on CosmWasm/wasmvm, we only support the targets
supported by this project.
Releases
All releases can be found here.
okp4d
follows the Semantic Versioning 2.0.0 to determine when and how the version changes, and
we also apply the philosophical principles of release early - release often.
Docker image
For a quick start, a docker image is officially available on Docker hub.
docker pull okp4/okp4d:latest
Get the documentation
docker run okp4/okp4d:latest --help
Query a running network
Example:
API_URL=https://api.devnet.okp4.network:443/rpc
WALLET=okp41pmkq300lrngpkeprygfrtag0xpgp9z92c7eskm
docker run okp4/okp4d:latest query bank balances $WALLET --chain-id okp4-devnet-1 --node $API_URL
Create a wallet
docker run -v $(pwd)/home:/home okp4/okp4d:latest keys add my-wallet --keyring-backend test --home /home
Start a node
Everything you need to start a node and more is explained here: https://docs.okp4.network/docs/nodes/run-node
MONIKER=node-in-my-name
CHAIN_ID=localnet-okp4-1
docker run -v $(pwd)/home:/home okp4/okp4d:latest init $MONIKER --chain-id $CHAIN_ID --home /home
This will create a home folder, you can then update the config/genesis.json
with one of this ones : https://github.com/okp4/okp4d/tree/main/chains/
Join a running network
Set persistent_peers
in config/config.toml
file.
Then start the node
docker run -v $(pwd)/home:/home okp4/okp4d:latest start --home /home
Developing & contributing
okp4d
is written in Go and built using Cosmos SDK. A number of smart contracts are also deployed on the
OKP4 blockchain and hosted in the okp4/contracts project.
Prerequisites
- install Go
1.21+
following instructions from the official Go documentation;
- use gofumpt as formatter. You can integrate it in your favorite IDE following these instructions or invoke the makefile
make format-go
;
- verify that Docker is properly installed and if not, follow the instructions for your environment;
- verify that
make
is properly installed if you intend to use the provided Makefile
.
Makefile
The project comes with a convenient Makefile
that helps you to build, install, lint and test the project.
$ make <target>
Targets:
Lint:
lint Lint all available linters
lint-go Lint go source code
lint-proto Lint proto files
Format:
format Run all available formatters
format-go Format go files
format-proto Format proto files
Build:
build Build all available artefacts (executable, docker image, etc.)
build-go Build node executable for the current environment (default build)
build-go-all Build node executables for all available environments
Install:
install Install node executable
Test:
test Pass all the tests
test-go Pass the test for the go source code
Chain:
chain-init Initialize the blockchain with default settings.
chain-start Start the blockchain with existing configuration (see chain-init)
chain-stop Stop the blockchain
chain-upgrade Test the chain upgrade from the given FROM_VERSION to the given TO_VERSION
Clean:
clean Remove all the files from the target folder
Proto:
proto Generate all resources for proto files (go, doc, etc.)
proto-format Format Protobuf files
proto-build Build all Protobuf files
proto-gen Generate all the code from the Protobuf files
Documentation:
doc Generate all the documentation
doc-proto Generate the documentation from the Protobuf files
doc-command Generate markdown documentation for the command
Mock:
mock Generate all the mocks (for tests)
Release:
release-assets Generate release assets
Help:
help Show this help.
This Makefile depends on docker. To install it, please follow the instructions:
- for macOS: https://docs.docker.com/docker-for-mac/install/
- for Windows: https://docs.docker.com/docker-for-windows/install/
- for Linux: https://docs.docker.com/engine/install/
Build
To build the okp4d
node, invoke the goal build
of the Makefile
:
make build
The binary will be generated under the folder target/dist
.
Bug reports & feature requests
If you notice anything not behaving how you expected, if you would like to make a suggestion or would like
to request a new feature, please open a new issue. We appreciate any help
you're willing to give!
Don't hesitate to ask if you are having trouble setting up your project repository, creating your first branch or
configuring your development environment. Mentors and maintainers are here to help!
The OKP4 Discord Server is our primary chat channel for the open-source community,
software developers and node operators.
Please reach out to us and say hi π, we're happy to help there.
You want to get involved? π
So you want to contribute? Great! β€οΈ We appreciate any help you're willing to give. Don't hesitate to open issues and/or
submit pull requests.
We believe that collaboration is key to the success of the OKP4 project. Join our Community discussions on the Community Repository to:
- Engage in conversations with peers and experts.
- Share your insights and experiences with OKP4.
- Learn from others and expand your knowledge of the protocol.
The Community Repository serves as a hub for discussions, questions, and knowledge-sharing related to OKP4. We encourage you to actively participate and contribute to the growth of our community.
Please check out OKP4 health files: