Skip to content
Snippets Groups Projects
  • Hugo Trentesaux's avatar
    b793b455
    implement quotas and refund transaction fees (!183) · b793b455
    Hugo Trentesaux authored
    * implement quotas
    
    implement weights "à l'arrache"
    
    benchmarks duniter-account "à l'arrache"
    
    implement benchmark logic (not proper benchmarks)
    
    fix live tests :man_facepalming:
    
    and clippy :man_facepalming::man_facepalming:
    
    replace quotas by quota everywhere
    
    comment unused sections of template
    
    remove quota treasury dependency
    
    give treasury address as argument
    
    typo
    
    review tuxmain
    
    doc readme
    
    rename error DistanceKO to DistanceNotOK
    
    merge new owner key and revocation signature
    
    merge signature error types
    
    rename NewOwnerKeyPayload
    
    fix comment
    
    make eligibility more explicit
    
    implement quotas
    
    implement weights "à l'arrache"
    
    benchmarks duniter-account "à l'arrache"
    
    implement benchmark logic (not proper benchmarks)
    
    fix live tests :man_facepalming:
    
    and clippy :man_facepalming::man_facepalming:
    
    replace quotas by quota everywhere
    
    comment unused sections of template
    
    remove quota treasury dependency
    
    give treasury address as argument
    
    typo
    
    review tuxmain
    
    doc readme
    
    rename error DistanceKO to DistanceNotOK
    
    merge new owner key and revocation signature
    
    merge signature error types
    
    rename NewOwnerKeyPayload
    
    fix comment
    
    make eligibility more explicit
    
    update metadata
    
    fix
    
    fix fee multiplier update
    
    prevent network discovery + connecting other nodes
    b793b455
    History
    implement quotas and refund transaction fees (!183)
    Hugo Trentesaux authored
    * implement quotas
    
    implement weights "à l'arrache"
    
    benchmarks duniter-account "à l'arrache"
    
    implement benchmark logic (not proper benchmarks)
    
    fix live tests :man_facepalming:
    
    and clippy :man_facepalming::man_facepalming:
    
    replace quotas by quota everywhere
    
    comment unused sections of template
    
    remove quota treasury dependency
    
    give treasury address as argument
    
    typo
    
    review tuxmain
    
    doc readme
    
    rename error DistanceKO to DistanceNotOK
    
    merge new owner key and revocation signature
    
    merge signature error types
    
    rename NewOwnerKeyPayload
    
    fix comment
    
    make eligibility more explicit
    
    implement quotas
    
    implement weights "à l'arrache"
    
    benchmarks duniter-account "à l'arrache"
    
    implement benchmark logic (not proper benchmarks)
    
    fix live tests :man_facepalming:
    
    and clippy :man_facepalming::man_facepalming:
    
    replace quotas by quota everywhere
    
    comment unused sections of template
    
    remove quota treasury dependency
    
    give treasury address as argument
    
    typo
    
    review tuxmain
    
    doc readme
    
    rename error DistanceKO to DistanceNotOK
    
    merge new owner key and revocation signature
    
    merge signature error types
    
    rename NewOwnerKeyPayload
    
    fix comment
    
    make eligibility more explicit
    
    update metadata
    
    fix
    
    fix fee multiplier update
    
    prevent network discovery + connecting other nodes
This project manages its dependencies using Cargo. Learn more
Cargo.toml 17.12 KiB
[package]
authors = ['Axiom-Team Developers <https://axiom-team.fr>']
build = 'node/build.rs'
description = 'Crypto-currency software (based on Substrate framework) to operate Ğ1 libre currency'
edition = "2021"
homepage = 'https://duniter.org'
license = 'AGPL-3.0'
name = 'duniter'
repository = 'https://git.duniter.org/nodes/rust/duniter-v2s'
version = '0.3.0'

[package.metadata.docs.rs]
targets = ['x86_64-unknown-linux-gnu']

[[bin]]
bench = false
name = 'duniter'
path = "node/src/main.rs"

[features]
default = ["gdev"]
gdev = ["gdev-runtime"] # gdev feature enables gdev runtime and gdev command line options
g1 = ["g1-runtime"]
gtest = ["gtest-runtime"]
embed = [] # embed feature enables embedding raw chainspecs that must be in ./specs/gdev-raw.json
runtime-benchmarks = [
    #'g1-runtime',
    #'g1-runtime/runtime-benchmarks',
    'gdev-runtime',
    'gdev-runtime/runtime-benchmarks',
    #'gtest-runtime',
    #'gtest-runtime/runtime-benchmarks',
    'sc-client-db/runtime-benchmarks',
]
try-runtime = [
    #"g1-runtime/try-runtime",
    "gdev-runtime/try-runtime",
    #"gtest-runtime/try-runtime",
    "try-runtime-cli",
]

[build-dependencies]
clap = { version = "4.0" }
#clap_complete = { version = "4.0" }
substrate-build-script-utils = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.42' }

[dev-dependencies]
rusty-hook = "^0.11.2"

# Dependencies for specific targets
[target.'cfg(any(target_arch="x86_64", target_arch="aarch64"))'.dependencies]
sc-cli = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sc-service = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sp-trie = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42" }


[dependencies]
# local dependencies
common-runtime = { path = 'runtime/common' }
dc-distance = { path = 'client/distance' }
distance-oracle = { path = 'distance-oracle', optional = true }
g1-runtime = { path = 'runtime/g1', optional = true }
gdev-runtime = { path = 'runtime/gdev', optional = true }
gtest-runtime = { path = 'runtime/gtest', optional = true }
pallet-certification = { path = 'pallets/certification' }
pallet-oneshot-account = { path = 'pallets/oneshot-account' }
sp-distance = { path = 'primitives/distance' }
sp-membership = { path = 'primitives/membership' }

# crates.io dependencies
async-io = { version = "1.6.0", default-features = false }
bs58 = "0.5.0"
clap = { version = "4.0.9", default-features = false, features = ["derive"] }
clap_complete = { version = "4", default-features = false }
futures = { version = "0.3.28", default-features = false, features = ["compat"] }
hex = { version = "0.4.3", default-features = false }
jsonrpsee = { version = "0.16.2", default-features = false, features = ["server"] }
lazy_static = { version = "1.4.0", default-features = false }
log = { version = "0.4", default-features = false }
maplit = { version = '1.0.2', default-features = false }
memmap2 = { version = "0.5.10", default-features = false }
serde = { version = "1.0", default-features = false }
serde_json = { version = "1.0.64", default-features = false }
tracing-core = { version = "0.1.28", default-features = false }
enum-as-inner = { version = "=0.5.1", default-features = false } #https://github.com/bluejekyll/trust-dns/issues/1946
num-format = "0.4.4"

# substrate dependencies
frame-benchmarking = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
frame-benchmarking-cli = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
frame-system = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
pallet-grandpa = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
pallet-im-online = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
pallet-transaction-payment = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
pallet-transaction-payment-rpc = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sc-basic-authorship = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sc-chain-spec = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sc-cli = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sc-client-api = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sc-consensus = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sc-consensus-babe = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sc-consensus-babe-rpc = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sc-consensus-manual-seal = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sc-client-db = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sc-executor = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sc-keystore = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sc-network = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sc-network-common = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sc-rpc-api = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sc-service = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sc-telemetry = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sc-transaction-pool = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sc-transaction-pool-api = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sp-api = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sp-authority-discovery = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sp-transaction-storage-proof = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sp-block-builder = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sp-blockchain = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sp-consensus = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sp-consensus-babe = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sp-consensus-grandpa = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.42', default-features = false }
sc-consensus-grandpa = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.42', default-features = false }
sp-core = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sp-inherents = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sp-io = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sp-offchain = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sp-keyring = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sp-keystore = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sp-runtime = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sp-session = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sp-storage = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sp-timestamp = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sp-transaction-pool = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
sp-trie = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
substrate-frame-rpc-system = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", default-features = false }
try-runtime-cli = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.42", optional = true, default-features = false }

[workspace]
resolver = "2"

members = [
    'client/distance',
    'distance-oracle',
    'end2end-tests',
    'live-tests',
    'pallets/certification',
    'pallets/quota',
    'pallets/distance',
    'pallets/duniter-test-parameters',
    'pallets/duniter-test-parameters/macro',
    'pallets/duniter-wot',
    'pallets/identity',
    'pallets/membership',
    'pallets/oneshot-account',
    'pallets/authority-members',
    'pallets/universal-dividend',
    'pallets/upgrade-origin',
    'primitives/membership',
    'primitives/distance',
    'runtime/common',
    'runtime/gdev',
    'xtask',
]

# The list of dependencies below (which can be both direct and indirect dependencies) are crates
# that are suspected to be CPU-intensive, and that are unlikely to require debugging (as some of
# their debug info might be missing) or to require to be frequently recompiled. We compile these
# dependencies with `opt-level=3` even in "dev" mode in order to make "dev" mode more usable.
# The majority of these crates are cryptographic libraries.
#
# This list is only relevant when running `cargo build` from within
# the Duniter-v2s workspace.
#
# If you see an error mentioning "profile package spec ... did not match any packages", it
# probably concerns this list.
#
# This list is ordered alphabetically.
[profile.dev.package]
blake2 = { opt-level = 3 }
blake2b_simd = { opt-level = 3 }
chacha20poly1305 = { opt-level = 3 }
cranelift-codegen = { opt-level = 3 }
cranelift-wasm = { opt-level = 3 }
crc32fast = { opt-level = 3 }
crossbeam-deque = { opt-level = 3 }
crypto-mac = { opt-level = 3 }
curve25519-dalek = { opt-level = 3 }
ed25519-dalek = { opt-level = 3 }
flate2 = { opt-level = 3 }
futures-channel = { opt-level = 3 }
hashbrown = { opt-level = 3 }
hash-db = { opt-level = 3 }
hmac = { opt-level = 3 }
httparse = { opt-level = 3 }
integer-sqrt = { opt-level = 3 }
keccak = { opt-level = 3 }
libm = { opt-level = 3 }
libsecp256k1 = { opt-level = 3 }
libz-sys = { opt-level = 3 }
mio = { opt-level = 3 }
nalgebra = { opt-level = 3 }
num-bigint = { opt-level = 3 }
parking_lot = { opt-level = 3 }
parking_lot_core = { opt-level = 3 }
percent-encoding = { opt-level = 3 }
primitive-types = { opt-level = 3 }
ring = { opt-level = 3 }
rustls = { opt-level = 3 }
sha2 = { opt-level = 3 }
sha3 = { opt-level = 3 }
smallvec = { opt-level = 3 }
snow = { opt-level = 3 }
twox-hash = { opt-level = 3 }
uint = { opt-level = 3 }
wasmi = { opt-level = 3 }
x25519-dalek = { opt-level = 3 }
yamux = { opt-level = 3 }
zeroize = { opt-level = 3 }

[profile.release]
lto = "thin"
# Substrate runtime requires unwinding.
panic = "unwind"

[patch.crates-io]

# # the following patch can be useful to debug substrate dependency
# # added by tuxmain on 0.9.32 update
# # updated by hugo on 0.9.42 update (benjamin)
# [patch.'https://github.com/duniter/substrate']
# pallet-balances = {path = '../substrate/frame/balances'}
# fork-tree = { path = "../substrate/utils/fork-tree" }
# frame-support = { path = "../substrate/frame/support" }
# frame-support-procedural = { path = "../substrate/frame/support/procedural" }
# frame-support-procedural-tools = { path = "../substrate/frame/support/procedural/tools" }
# frame-system = { path = "../substrate/frame/system" }
# frame-benchmarking = { path = "../substrate/frame/benchmarking" }
# frame-benchmarking-cli = { path = "../substrate/utils/frame/benchmarking-cli" }
# sc-basic-authorship = { path = "../substrate/client/basic-authorship" }
# sc-block-builder = { path = "../substrate/client/block-builder" }
# sc-chain-spec = { path = "../substrate/client/chain-spec" }
# sc-cli = { path = "../substrate/client/cli" }
# sc-client-api = { path = "../substrate/client/api" }
# sc-client-db = { path = "../substrate/client/db" }
# sc-network-common = { path = "../substrate/client/network/common" }
# sc-consensus = { path = "../substrate/client/consensus/common" }
# sc-consensus-aura = { path = "../substrate/client/consensus/aura" }
# sc-consensus-babe = { path = "../substrate/client/consensus/babe" }
# sc-consensus-babe-rpc = { path = "../substrate/client/consensus/babe/rpc" }
# sc-consensus-manual-seal = { path = "../substrate/client/consensus/manual-seal" }
# sc-consensus-slots = { path = "../substrate/client/consensus/slots" }
# sc-executor = { path = "../substrate/client/executor" }
# sc-executor-common = { path = "../substrate/client/executor/common" }
# sc-executor-wasmi = { path = "../substrate/client/executor/wasmi" }
# sc-executor-wasmtime = { path = "../substrate/client/executor/wasmtime" }
# sc-keystore = { path = "../substrate/client/keystore" }
# sc-network = { path = "../substrate/client/network" }
# sc-rpc-api = { path = "../substrate/client/rpc-api" }
# sc-service = { path = "../substrate/client/service" }
# sc-utils = { path = "../substrate/client/utils" }
# sc-telemetry = { path = "../substrate/client/telemetry" }
# sc-transaction-pool = { path = "../substrate/client/transaction-pool" }
# sc-transaction-pool-api = { path = "../substrate/client/transaction-pool/api" }
# sc-peerset = { path = "../substrate/client/peerset" }
# sp-api = { path = "../substrate/primitives/api" }
# sp-application-crypto = { path = "../substrate/primitives/application-crypto" }
# sp-arithmetic = { path = "../substrate/primitives/arithmetic" }
# sp-authority-discovery = { path = "../substrate/primitives/authority-discovery" }
# sp-block-builder = { path = "../substrate/primitives/block-builder" }
# sp-blockchain = { path = "../substrate/primitives/blockchain" }
# sp-consensus = { path = "../substrate/primitives/consensus/common" }
# sp-consensus-babe = { path = "../substrate/primitives/consensus/babe" }
# sp-consensus-slots = { path = "../substrate/primitives/consensus/slots" }
# sp-core = { path = "../substrate/primitives/core" }
# sp-core-hashing = { path = "../substrate/primitives/core/hashing" }
# sp-core-hashing-proc-macro = { path = "../substrate/primitives/core/hashing/proc-macro" }
# sp-debug-derive = { path = "../substrate/primitives/debug-derive" }
# sp-externalities = { path = "../substrate/primitives/externalities" }
# sp-consensus-grandpa = { path = "../substrate/primitives/consensus/grandpa" }
# sp-inherents = { path = "../substrate/primitives/inherents" }
# sp-io = { path = "../substrate/primitives/io" }
# sp-keyring = { path = "../substrate/primitives/keyring" }
# sp-keystore = { path = "../substrate/primitives/keystore" }
# sp-maybe-compressed-blob = { path = "../substrate/primitives/maybe-compressed-blob" }
# sp-offchain = { path = "../substrate/primitives/offchain" }
# sp-panic-handler = { path = "../substrate/primitives/panic-handler" }
# sp-rpc = { path = "../substrate/primitives/rpc" }
# sp-runtime = { path = "../substrate/primitives/runtime" }
# sp-session = { path = "../substrate/primitives/session" }
# sp-staking = { path = "../substrate/primitives/staking" }
# sp-state-machine = { path = "../substrate/primitives/state-machine" }
# sp-std = { path = "../substrate/primitives/std" }
# sp-storage = { path = "../substrate/primitives/storage" }
# sp-timestamp = { path = "../substrate/primitives/timestamp" }
# sp-tracing = { path = "../substrate/primitives/tracing" }
# sp-transaction-pool = { path = "../substrate/primitives/transaction-pool" }
# sp-transaction-storage-proof = { path = "../substrate/primitives/transaction-storage-proof" }
# sp-trie = { path = "../substrate/primitives/trie" }
# sp-version = { path = "../substrate/primitives/version" }
# sp-weights = { path = "../substrate/primitives/weights" }
# substrate-prometheus-endpoint = { path = "../substrate/utils/prometheus" }