-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cargo.toml
105 lines (90 loc) · 2.48 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# Copyright (c) Shubham Mishra. All rights reserved.
# Licensed under the MIT License.
[package]
name = "pft"
version = "0.2.0"
edition = "2021"
[dependencies]
async-recursion = "1.1.1"
bytes = {version = "1.6.0", "features" = ["std", "serde"]}
colog = "1.3.0"
ed25519-dalek = {version = "2.1.1", features = ["alloc", "fast", "std", "zeroize", "pem", "pkcs8"]}
log = "0.4.22"
rand = "0.8.5"
rustls = "0.23.10"
rustls-pemfile = "2.1.2"
serde = {version = "1.0.203", features = ["derive"]}
serde_cbor = "0.11.2"
serde_json = "1.0.120"
tokio = {version = "1.38.0", features = ["full"]}
tokio-rustls = "0.26.0"
prost = "0.12"
prost-types = "0.12"
sha2 = "0.10.8"
hex = "0.4.3"
futures = "0.3.30"
snmalloc-rs = {version = "0.3.6", features = ["native-cpu"]}
core_affinity = "0.8.1"
log4rs = "1.3.0"
byteorder = "1.5.0"
indexmap = "2.2.6"
rand_chacha = "0.3.1"
nix = {version = "0.29.0", features = ["process", "signal"]}
crossbeam = "0.8.4"
clap = { version = "4.5.15", features = ["derive", "cargo"] }
rocksdb = "0.22.0"
lz4_flex = { version = "0.11" }
gluesql = "0.15"
zipf = "7.0.1"
[build-dependencies]
prost-build = { version = "0.12" }
[dev-dependencies]
criterion = { version = "0.5.1", features = ["html_reports"] }
memory-stats = "1.2.0"
[[bench]]
name = "sign_bench"
harness = false
[[bench]]
name = "verify_bench"
harness = false
[[bench]]
name = "tx_serde_bench"
harness = false
[[bench]]
name = "storage"
harness = false
[features]
# Protocol specifics
# Leader change
round_robin_leader = []
fixed_leader = []
# Signing
always_sign = []
never_sign = []
dynamic_sign = []
# Other features
storage = []
quorum_diversity = []
view_change = []
no_pipeline = []
no_qc = []
reply_from_app = []
fast_path = []
platforms = []
evil = []
# Applications
app_logger = []
app_kvs = []
app_sql = ["reply_from_app"]
# Protocols specs
lucky_raft = ["fixed_leader", "never_sign"] # QC never formed, so no_qc is implied
signed_raft = ["fixed_leader", "dynamic_sign", "no_qc"]
diverse_raft = ["fixed_leader", "dynamic_sign", "quorum_diversity"]
jolteon = ["round_robin_leader", "always_sign", "view_change", "no_pipeline"]
chained_pbft = ["round_robin_leader", "always_sign", "view_change"]
pirateship = ["round_robin_leader", "dynamic_sign", "quorum_diversity", "view_change"]
default = ["pirateship", "app_logger", "storage", "fast_path", "platforms"]
# default = ["signed_raft", "app_logger", "storage"]
# default = ["pirateship", "app_logger", "storage", "evil", "fast_path", "platforms"]
[profile.release]
panic = "abort"