mirror of
https://github.com/luxfi/node.git
synced 2026-10-30 15:24:05 +00:00
chains/cpp/core and quantumvm asked for LUX_GPU_DIR and stopped with a fatal error when nothing set it, so the public P, X and Q builds could not configure at all for anyone outside this machine. The seam is an ABI of four symbols over a complete CPU backend, not a kernel, so it belongs beside the chains defined over it; the kernels stay private in lux-gpu/gpu and are still only ever dlopen'd. The D and F ports move with it, to lux-cpp/chains and lux-rs/chains, both public. luxfi/compute held nothing its licence did not already cover, being the same BSD-3-Clause as this repository's. Co-authored-by: Hanzo Dev <[email protected]>
64 lines
3.1 KiB
TOML
64 lines
3.1 KiB
TOML
[package]
|
|
name = "lux-xvm"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "The Lux X-Chain in Rust: the UTXO DAG and asset transfers, ZAP on the wire."
|
|
license = "BSD-3-Clause-Eco"
|
|
repository = "https://github.com/luxfi/node2"
|
|
publish = false
|
|
|
|
[dependencies]
|
|
# The ZAP runtime, emitted by zapgen into `chains/rust/zap` — one copy for
|
|
# every chain here, so the reader a chain calls is the reader the Go and C++
|
|
# chains call. A path dependency because it is generated in this tree from
|
|
# `chains/schema`, and a version between them would be a way to disagree
|
|
# about what a byte means.
|
|
lux-zap = { path = "../zap" }
|
|
|
|
# The host. `host::Vm` and `host::Block` are the node's OWN trait definitions,
|
|
# not a copy of them: a chain that restated the seam would compile against a
|
|
# shape the node never sees, and the day the node changed a method the chain
|
|
# would still build. A path dependency because `lux-node` is not published —
|
|
# the same reason the node itself reaches `lux-evm` and `lux-pq` by path.
|
|
lux-node = { path = "../../../../../lux-rs/node" }
|
|
|
|
# Named, not used: `lux-node` reaches `libluxcrypto` through this crate, and
|
|
# only a DIRECT dependent is handed the `links` metadata that says where that
|
|
# library was resolved. Naming it here is what lets `build.rs` repeat the one
|
|
# answer instead of searching for a second one, so this crate's test binaries —
|
|
# which run the node — can load. `lux-node` names it for the same reason.
|
|
lux-pq = { path = "../../../../../lux-rs/sdk/lux-pq" }
|
|
|
|
# `Id` — `lux_consensus::finality::Id`, `[u8; 32]`. Named from the crate the
|
|
# host names it from, so a block this chain builds is named the same way the
|
|
# node that certifies it names it, with nothing in between to translate.
|
|
lux-consensus = "1.23.0"
|
|
|
|
# Every primitive the chain is defined over — the three hashes, the RFC 6962
|
|
# fold, and public-key recovery — comes from here, and from nowhere else. A tx
|
|
# id is SHA-256 of its signed bytes; an address is RIPEMD-160 of the SHA-256 of
|
|
# a public key; every state-root leaf is Ethereum Keccak-256; a transfer is
|
|
# spendable because the sender is RECOVERED from the signature. This crate is
|
|
# also where the choice between computing those and handing them to an installed
|
|
# kernel library is made — see gpu/README.md.
|
|
lux-gpu = { path = "../../../gpu/rust" }
|
|
|
|
# Signing. A node never signs a transfer — a wallet does — so this is the test
|
|
# and tooling half of the same curve, and is deliberately not behind the
|
|
# primitive seam, which exists to make VERIFICATION agree across backends.
|
|
k256 = { version = "0.13", default-features = false, features = ["ecdsa", "std"] }
|
|
|
|
# The one boundary where a chain answers a caller in a shape it did not
|
|
# choose. A hand-written parser at a boundary is a vulnerability with a
|
|
# schedule.
|
|
serde_json = "1"
|
|
|
|
[dev-dependencies]
|
|
# Golden vectors are hex, because that is how the Go generator prints them.
|
|
hex = "0.4"
|
|
|
|
# Publishing a validator, in `tests/node.rs`: the committee the node's engine
|
|
# reads is a BLS key and a proof of possession over it, so standing one up
|
|
# means holding the same curve the node verifies under.
|
|
blst = "0.3"
|