mirror of
https://source.quilibrium.com/quilibrium/ceremonyclient.git
synced 2025-01-19 04:05:30 +00:00
update version info + readme
This commit is contained in:
parent
6b0dd69e93
commit
5d4612c6c6
91
README.md
91
README.md
@ -1,31 +1,40 @@
|
||||
# Quilibrium - Aurora
|
||||
# Quilibrium - Betelgeuse
|
||||
|
||||
Quilibrium is a decentralized alternative to platform as a service providers.
|
||||
This release, mirrored to GitHub, is the Dawn release, which contains the
|
||||
initial application, the MPC Powers-of-Tau Ceremony. Documentation for the
|
||||
This release is part of the phases of the Dusk release, which finalizes with
|
||||
the full permissionless mainnet in version 2.0. Documentation for the
|
||||
underlying technology can be found at https://www.quilibrium.com/
|
||||
|
||||
## 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:
|
||||
|
||||
@ -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:
|
||||
|
||||
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.
|
||||
|
||||
## 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.
|
||||
Note that this feature requires that [gRPC support](#grpcrest-support) is enabled.
|
||||
|
||||
## Community Section
|
||||
|
||||
@ -108,15 +76,6 @@ impossible to achieve otherwise
|
||||
- Error wrapping matching function names
|
||||
- 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
|
||||
|
||||
Significant portions of Quilibrium's codebase depends on GPL-licensed code,
|
||||
|
@ -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"
|
||||
@ -899,11 +899,11 @@ func logoVersion(width int) string {
|
||||
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 += " DB Console\n"
|
||||
} else {
|
||||
out = "Quilibrium Node - v" + config.GetVersionString() + " – Nebula - DB Console\n"
|
||||
out = "Quilibrium Node - v" + config.GetVersionString() + " – Betelgeuse - DB Console\n"
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
@ -6,15 +6,15 @@ import (
|
||||
)
|
||||
|
||||
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 {
|
||||
return []byte{0x01, 0x04, 0x12}
|
||||
return []byte{0x01, 0x04, 0x13}
|
||||
}
|
||||
|
||||
func GetVersion() []byte {
|
||||
return []byte{0x01, 0x04, 0x12}
|
||||
return []byte{0x01, 0x04, 0x13}
|
||||
}
|
||||
|
||||
func GetVersionString() string {
|
||||
@ -29,5 +29,5 @@ func FormatVersion(version []byte) string {
|
||||
}
|
||||
|
||||
func GetPatchNumber() byte {
|
||||
return 0x02
|
||||
return 0x00
|
||||
}
|
||||
|
42
node/main.go
42
node/main.go
@ -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(" '. '-. ###############")
|
||||
@ -883,5 +883,5 @@ func printVersion() {
|
||||
patchString = fmt.Sprintf("-p%d", patch)
|
||||
}
|
||||
fmt.Println(" ")
|
||||
fmt.Println(" Quilibrium Node - v" + config.GetVersionString() + patchString + " – Nebula")
|
||||
fmt.Println(" Quilibrium Node - v" + config.GetVersionString() + patchString + " – Betelgeuse")
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ var BITMASK_ALL = []byte{
|
||||
// While we iterate through these next phases, we're going to aggressively
|
||||
// enforce keeping updated. This will be achieved through announce strings
|
||||
// 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 {
|
||||
peerPrivKey, err := hex.DecodeString(p2pConfig.PeerPrivKey)
|
||||
|
Loading…
Reference in New Issue
Block a user