update version info + readme

This commit is contained in:
Cassandra Heart 2024-06-07 03:53:15 -05:00
parent 6b0dd69e93
commit 5d4612c6c6
No known key found for this signature in database
GPG Key ID: 6352152859385958
5 changed files with 73 additions and 114 deletions

View File

@ -1,31 +1,40 @@
# Quilibrium - Aurora # Quilibrium - Betelgeuse
Quilibrium is a decentralized alternative to platform as a service providers. Quilibrium is a decentralized alternative to platform as a service providers.
This release, mirrored to GitHub, is the Dawn release, which contains the This release is part of the phases of the Dusk release, which finalizes with
initial application, the MPC Powers-of-Tau Ceremony. Documentation for the the full permissionless mainnet in version 2.0. Documentation for the
underlying technology can be found at https://www.quilibrium.com/ underlying technology can be found at https://www.quilibrium.com/
## Quick Start ## Quick Start
All commands are to be run in the `node/` folder. Running production nodes from source is no longer recommended given build complexity. Please refer to our release information to obtain the latest version.
If you have a voucher from the offline ceremony, first run: ## Running From Source
GOEXPERIMENT=arenas go run ./... -import-priv-key `cat /path/to/voucher.hex` Builds are now a hybrid of Rust and Go, so you will need both go 1.22 and latest Rust + Cargo.
If you do not, or have already run the above, run: ### VDF
GOEXPERIMENT=arenas go run ./... The VDF implementation is now in Rust, and requires GMP to build. On Mac, you can install GMP with brew (`brew install gmp`). On Linux, you will need to find the appropriate package for your distro.
## Peer ID Install the go plugin for uniffi-rs:
In order to find the peer id of a running node, execute the following command from the `node/` folder: cargo install uniffi-bindgen-go --git https://github.com/NordSecurity/uniffi-bindgen-go --tag v0.2.1+v0.25.0
GOEXPERIMENT=arenas go run ./... -peer-id Be sure to follow the PATH export given by the installer.
The peer id will be printed to stdout. Build the Rust VDF implementation by navigating to the vdf folder, and run `./generate.sh`.
## EXPERIMENTAL gRPC/REST Support ### Node
Because of the Rust interop, be sure you follow the above steps for the VDF before proceeding to this. Navigate to the node folder, and run (making sure to update the path for the repo):
CGO_LDFLAGS="-L/path/to/ceremonyclient/target/release -lvdf -ldl -lm" \
CGO_ENABLED=1 \
GOEXPERIMENT=arenas \
go run ./... --signature-check=false
## gRPC/REST Support
If you want to enable gRPC/REST, add the following entries to your config.yml: If you want to enable gRPC/REST, add the following entries to your config.yml:
@ -40,52 +49,11 @@ access via firewall or only query via localhost.
In order to query the token balance of a running node, execute the following command from the `node/` folder: In order to query the token balance of a running node, execute the following command from the `node/` folder:
GOEXPERIMENT=arenas go run ./... -balance ./node-$version-$platform -balance
The confirmed token balance will be printed to stdout in QUILs. The accumulated token balance will be printed to stdout in QUILs.
Note that this feature requires that [gRPC support](#experimental--grpcrest-support) is enabled. Note that this feature requires that [gRPC support](#grpcrest-support) is enabled.
## Stats Collection
In order to opt-in to stats collection about the health of the network, edit your `config.yml` in the `node/.config` directory to have a new section under `engine`:
```yml
<earlier parts of config>
engine:
statsMultiaddr: "/dns/stats.quilibrium.com/tcp/443"
<rest of config continues below>
```
## Purpose
The ceremony application provides a secure reference string (SRS) from which
KZG proofs can be constructed for the network. This yields applicability for a
number of proof systems, in particular for the release after Dawn, the ability
to provide proofs of execution, and proofs of data availability for the network.
### Rewards
For participating in a round of the ceremony, nodes will be allocated:
reward = 161 * log_2(participant_count) QUIL
### Basic Flow
Rounds of the ceremony follow the following order:
- OPEN: Nodes can join in for the round, deferring preference to nodes that
could not join in on the prior round
- IN PROGRESS: The MPC ceremony round is in progress, nodes are engaging in a
logarithmic collection of Multiplication-to-Add Oblivious Transfer circuits,
each sub round producing a new collection of values, until the sub rounds have
completed, producing a collection of public G1 and G2 BLS48-581 points for each
peer.
- FINALIZING: The collection of points are broadcasted, and added together,
producing a singular ceremony transcript contribution.
- VALIDATING: The updated ceremony transcript is validated against the
predecessor, and is confirmed to be the new state, issuing rewards to the
participant set. The next round can begin.
## Community Section ## Community Section
@ -108,15 +76,6 @@ impossible to achieve otherwise
- Error wrapping matching function names - Error wrapping matching function names
- Interface composition and dependency injection with Wire - Interface composition and dependency injection with Wire
## Minimum System Requirements
For the Dawn phase, a server must have a minimum of 16GB of RAM, preferably
32 GB, 250GB of storage, preferably via SSD, and 50MBps symmetric bandwidth.
For Intel/AMD, the baseline processor is a Skylake processor @ 3.4GHz with 12
dedicated cores. For ARM, the M1 line of Apple is a good reference.
With Dusk, these minimum requirements will reduce significantly.
## License + Interpretation ## License + Interpretation
Significant portions of Quilibrium's codebase depends on GPL-licensed code, Significant portions of Quilibrium's codebase depends on GPL-licensed code,

View File

@ -869,26 +869,26 @@ func logoVersion(width int) string {
out += " ..---'''' ''''---..\n" out += " ..---'''' ''''---..\n"
out += " .---'' ''---.\n" out += " .---'' ''---.\n"
out += " .-' '-.\n" out += " .-' '-.\n"
out += " ..-' ..--'''''''''''%######################\n" out += " ..-' ..--''''''''''''''--.. '-..\n"
out += " .' .--'' #################\n" out += " .' .--'' ''--. ''.\n"
out += " .'' ..-' ###############\n" out += " .'' ..-' ''-. '.\n"
out += " ' ' ##############\n" out += " ' ' ''. '.\n"
out += " '' .'' ############&\n" out += " '' .'' '. '\n"
out += " ' '' ############\n" out += " ' '' '. '\n"
out += " ' ' ########## &###########\n" out += " ' ' ########## . '\n"
out += " ' ' ############## ###########\n" out += " ' ' ############## ' '\n"
out += " ' ' ############## ##########&\n" out += " ' ' ############## ' '\n"
out += " ' ' ############## ##########\n" out += " ' ' ############## ' '\n"
out += "' ' ########## ##########\n" out += "' ' ########## ' '\n"
out += "' ' ##########\n" out += "' ' ' '\n"
out += "' ' &#########\n" out += "' ' ' '\n"
out += "' ' ####### ####### ##########\n" out += "' ' ####### ####### ' '\n"
out += "' ' &######################### ##########\n" out += "' ' &######################### ' '\n"
out += " ' ' ##############% ############## &##########\n" out += "' ' ##############% ############## ' '\n"
out += " ' ' &############## ############### ##########\n" out += " ' ' &############## ############### ' '\n"
out += " ' ' ############### ##############% ###########\n" out += " ' ' ############### ##############% '. '\n"
out += " ' '. ########## ############### ########\n" out += " ' '. ########## ############### '-. '\n"
out += " '. . ##### ##############% ####\n" out += " '. . ##### ##############% '-.'\n"
out += " ' '. ###############\n" out += " ' '. ###############\n"
out += " '. '.. ##############%\n" out += " '. '.. ##############%\n"
out += " '. '-. ###############\n" out += " '. '-. ###############\n"
@ -899,11 +899,11 @@ func logoVersion(width int) string {
out += " ''---.. ...---'' ##\n" out += " ''---.. ...---'' ##\n"
out += " ''----------''\n" out += " ''----------''\n"
out += " \n" out += " \n"
out += " Quilibrium Node - v" + config.GetVersionString() + " Nebula\n" out += " Quilibrium Node - v" + config.GetVersionString() + " Betelgeuse\n"
out += " \n" out += " \n"
out += " DB Console\n" out += " DB Console\n"
} else { } else {
out = "Quilibrium Node - v" + config.GetVersionString() + " Nebula - DB Console\n" out = "Quilibrium Node - v" + config.GetVersionString() + " Betelgeuse - DB Console\n"
} }
return out return out
} }

View File

@ -6,15 +6,15 @@ import (
) )
func GetMinimumVersionCutoff() time.Time { func GetMinimumVersionCutoff() time.Time {
return time.Date(2024, time.May, 28, 3, 0, 0, 0, time.UTC) return time.Date(2024, time.May, 8, 5, 0, 0, 0, time.UTC)
} }
func GetMinimumVersion() []byte { func GetMinimumVersion() []byte {
return []byte{0x01, 0x04, 0x12} return []byte{0x01, 0x04, 0x13}
} }
func GetVersion() []byte { func GetVersion() []byte {
return []byte{0x01, 0x04, 0x12} return []byte{0x01, 0x04, 0x13}
} }
func GetVersionString() string { func GetVersionString() string {
@ -29,5 +29,5 @@ func FormatVersion(version []byte) string {
} }
func GetPatchNumber() byte { func GetPatchNumber() byte {
return 0x02 return 0x00
} }

View File

@ -845,26 +845,26 @@ func printLogo() {
fmt.Println(" ..---'''' ''''---..") fmt.Println(" ..---'''' ''''---..")
fmt.Println(" .---'' ''---.") fmt.Println(" .---'' ''---.")
fmt.Println(" .-' '-.") fmt.Println(" .-' '-.")
fmt.Println(" ..-' ..--'''''''''''%######################") fmt.Println(" ..-' ..--''''''''''''''--.. '-..")
fmt.Println(" .' .--'' #################") fmt.Println(" .' .--'' ''--. ''.")
fmt.Println(" .'' ..-' ###############") fmt.Println(" .'' ..-' ''-. '.")
fmt.Println(" ' ' ##############") fmt.Println(" ' ' ''. '.")
fmt.Println(" '' .'' ############&") fmt.Println(" '' .'' '. '")
fmt.Println(" ' '' ############") fmt.Println(" ' '' '. '")
fmt.Println(" ' ' ########## &###########") fmt.Println(" ' ' ########## . '")
fmt.Println(" ' ' ############## ###########") fmt.Println(" ' ' ############## ' '")
fmt.Println(" ' ' ############## ##########&") fmt.Println(" ' ' ############## ' '")
fmt.Println(" ' ' ############## ##########") fmt.Println(" ' ' ############## ' '")
fmt.Println("' ' ########## ##########") fmt.Println("' ' ########## ' '")
fmt.Println("' ' ##########") fmt.Println("' ' ' '")
fmt.Println("' ' &#########") fmt.Println("' ' ' '")
fmt.Println("' ' ####### ####### ##########") fmt.Println("' ' ####### ####### ' '")
fmt.Println("' ' &######################### ##########") fmt.Println("' ' &######################### ' '")
fmt.Println(" ' ' ##############% ############## &##########") fmt.Println("' ' ##############% ############## ' '")
fmt.Println(" ' ' &############## ############### ##########") fmt.Println(" ' ' &############## ############### ' '")
fmt.Println(" ' ' ############### ##############% ###########") fmt.Println(" ' ' ############### ##############% '. '")
fmt.Println(" ' '. ########## ############### ########") fmt.Println(" ' '. ########## ############### '-. '")
fmt.Println(" '. . ##### ##############% ####") fmt.Println(" '. . ##### ##############% '-.'")
fmt.Println(" ' '. ###############") fmt.Println(" ' '. ###############")
fmt.Println(" '. '.. ##############%") fmt.Println(" '. '.. ##############%")
fmt.Println(" '. '-. ###############") fmt.Println(" '. '-. ###############")
@ -883,5 +883,5 @@ func printVersion() {
patchString = fmt.Sprintf("-p%d", patch) patchString = fmt.Sprintf("-p%d", patch)
} }
fmt.Println(" ") fmt.Println(" ")
fmt.Println(" Quilibrium Node - v" + config.GetVersionString() + patchString + " Nebula") fmt.Println(" Quilibrium Node - v" + config.GetVersionString() + patchString + " Betelgeuse")
} }

View File

@ -61,7 +61,7 @@ var BITMASK_ALL = []byte{
// While we iterate through these next phases, we're going to aggressively // While we iterate through these next phases, we're going to aggressively
// enforce keeping updated. This will be achieved through announce strings // enforce keeping updated. This will be achieved through announce strings
// that will vary with each update // that will vary with each update
var ANNOUNCE_PREFIX = "quilibrium-1.4.18-nebula-" var ANNOUNCE_PREFIX = "quilibrium-1.4.19-betelgeuse-"
func getPeerID(p2pConfig *config.P2PConfig) peer.ID { func getPeerID(p2pConfig *config.P2PConfig) peer.ID {
peerPrivKey, err := hex.DecodeString(p2pConfig.PeerPrivKey) peerPrivKey, err := hex.DecodeString(p2pConfig.PeerPrivKey)