-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathjustfile
More file actions
292 lines (251 loc) · 6.93 KB
/
Copy pathjustfile
File metadata and controls
292 lines (251 loc) · 6.93 KB
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
set positional-arguments
init-hermit:
hermit init --quiet
hermit install just
hermit install clang-format
hermit install rustup
rustup default stable
cargo clean
cargo build
watch +args='test':
cargo watch --clear --exec '{{args}}'
fmt:
cargo fmt --all
clippy:
cargo clippy --all --all-targets -- --deny warnings
ci: clippy
cargo fmt -- --check
cargo test --all
ignored:
cargo test --all -- --ignored
all: ci ignored
outdated:
cargo outdated --root-deps-only --workspace
unused:
cargo +nightly udeps --workspace
doc:
cargo doc --package para --open
audit:
cargo audit
coverage:
# cargo tarpaulin --engine llvm
# cargo llvm-cov -- --include-ignored
cargo llvm-cov --html --open
fuzz:
#!/usr/bin/env bash
set -euxo pipefail
cd fuzz
while true; do
cargo +nightly fuzz run message -- -dict=stratum.dict -max_len=32768 -max_total_time=60
cargo +nightly fuzz run method-from-parts -- -dict=stratum.dict -max_len=32768 -max_total_time=60
cargo +nightly fuzz run primitives -- -dict=stratum.dict -max_total_time=60
cargo +nightly fuzz run merkle-root -- -max_total_time=60
cargo +nightly fuzz run difficulty -- -max_total_time=60
done
test-without-ckpool:
cargo test --all -- --skip ckpool
bitcoind:
#!/usr/bin/env bash
./bitcoin/build/bin/bitcoind \
-datadir=copr \
-signet
pool:
cargo run --features reload -- \
pool \
--chain signet \
--data-dir copr/para \
--address 0.0.0.0 \
--bitcoin-rpc-username satoshi \
--bitcoin-rpc-password nakamoto \
--bitcoin-rpc-port 38332 \
--http-port 8080 \
--http-admin-token 123 \
--start-diff 0.00001 \
--vardiff-window 10 \
--vardiff-period 1 \
--zmq-block-notifications tcp://127.0.0.1:28332
proxy:
cargo run --features reload -- \
proxy \
--chain signet \
--data-dir copr/para \
--bitcoin-rpc-username satoshi \
--bitcoin-rpc-password nakamoto \
--bitcoin-rpc-port 38332 \
--address 0.0.0.0 \
--port 42071 \
--upstream tb1qft5p2uhsdcdc3l2ua4ap5qqfg4pjaqlp250x7us7a8qqhrxrxfsqaqh7jw.proxy@127.0.0.1:42069 \
--http-port 8081 \
--http-admin-token 123 \
--start-diff 0.00001 \
--vardiff-window 10 \
--vardiff-period 1
router:
cargo run --features reload -- \
router \
--chain signet \
--data-dir copr/para \
--bitcoin-rpc-username satoshi \
--bitcoin-rpc-password nakamoto \
--bitcoin-rpc-port 38332 \
--address 0.0.0.0 \
--port 42070 \
--http-port 8082 \
--http-admin-token 123 \
--start-diff 0.00001 \
--vardiff-window 10 \
--vardiff-period 1 \
--tick-interval 10 \
--sink-order tb1qft5p2uhsdcdc3l2ua4ap5qqfg4pjaqlp250x7us7a8qqhrxrxfsqaqh7jw.router@127.0.0.1:42069 \
--wallet-birthday 13000 \
--descriptor "tr([6cf75d5c/86'/1'/0']tprv8gNWXLKSxxW1GdLWjDscZzfy5A2jWYW5Yh7XxB9EtrAB4yNeJRezY7McT86yhHSD6cRTnjtHWV9JZMJ2taba3QvXNT92Tr7L3tkFWGTUBVX/0/*)#4jdqs9ss"
wallet +args='balance':
cargo run \
wallet \
--data-dir copr/para \
--chain signet \
--bitcoin-rpc-username satoshi \
--bitcoin-rpc-password nakamoto \
--bitcoin-rpc-port 38332 \
--descriptor "tr([dea3fb4a/86'/1'/0']tprv8gwiVyVAJwGJEemH1y8SfcY9SzTod9a2xE3FyvRNs48zhqALNZbArLj8yBXjo6NGFrzW3Qe8UMJQa77MqkVst45iuxTfw1mtocfRGBewmxo/0/*)#atez75tt" \
--birthday 13000 \
{{args}}
miner port='42069':
cargo run --release -- miner \
127.0.0.1:{{port}} \
--username tb1pp8d9pmzh7l7ptk5n5rav8cxze74ktassddjgaz8lgcn8p9ztzqhs6x9cl8.miner \
--password x \
--cpu-cores 2 \
--throttle 1M
pool-mainnet:
cargo run --features reload -- \
pool \
--chain mainnet \
--address 0.0.0.0 \
--port 42069 \
--start-diff 0.001 \
--bitcoin-rpc-username satoshi \
--bitcoin-rpc-password nakamoto \
--http-port 8080 \
--zmq-block-notifications tcp://127.0.0.1:28333
proxy-mainnet:
cargo run --features reload -- \
proxy \
--chain mainnet \
--bitcoin-rpc-username satoshi \
--bitcoin-rpc-password nakamoto \
--address 0.0.0.0 \
--port 42070 \
--start-diff 0.001 \
--http-port 8081 \
--upstream bc1qyr294wemhvcp69dheccp2nat2yemtxfd6sc96e.proxy@parasite.wtf:42069
miner-mainnet stratum_endpoint='127.0.0.1:42069':
cargo run --release -- miner \
{{stratum_endpoint}} \
--username bc1p4r54k6ju6h92x8rvucsumg06nhl4fmnr9ecg6dzw5nk24r45dzasde25r3.tick \
--password x \
--cpu-cores 2 \
--throttle 500K
harness: build-bitcoind
cargo run -p harness -- spawn
flood:
cargo run -p harness -- flood
flood-continuous:
cargo run -p harness -- flood --continuous 5000000
mempool:
docker compose -f copr/mempool/docker-compose.yml up
mempool-down:
docker compose -f copr/mempool/docker-compose.yml down -v --remove-orphans
openapi:
cargo run --example openapi > openapi.json
show-api-docs:
#!/usr/bin/env bash
RUST_LOG=info cargo run --features swagger-ui -- server \
--log-dir copr/logs \
--address 127.0.0.1 \
--port 8080 &
SERVER_PID=$!
for i in $(seq 1 30); do
curl -s http://127.0.0.1:8080/swagger-ui/ >/dev/null 2>&1 && break
sleep 1
done
open http://127.0.0.1:8080/swagger-ui/ 2>/dev/null || xdg-open http://127.0.0.1:8080/swagger-ui/ 2>/dev/null
wait $SERVER_PID
install:
git submodule update --init --recursive
sudo apt-get install --yes \
autoconf \
automake \
build-essential \
capnproto \
clang-format \
cmake \
libboost-dev \
libcapnp-dev \
libevent-dev \
libpq-dev \
libsqlite3-dev \
libtool \
libzmq3-dev \
pkgconf \
python3 \
yasm \
build-bitcoind: install
#!/usr/bin/env bash
cd bitcoin
cmake -B build -DWITH_ZMQ=ON
cmake --build build -j 21
build-ckpool: install
#!/usr/bin/env bash
cd ckpool
./autogen.sh
./configure
make
build: build-bitcoind build-ckpool
ckpool:
#!/usr/bin/env bash
cd ckpool
make
cd ..
./ckpool/src/ckpool \
-B \
-k \
--config copr/ckpool.conf \
--sockdir copr/tmp \
--loglevel 7 \
--log-shares \
--signet \
--log-txns
lint:
find ./ckpool/src -type f \( -name "*.c" -o -name "*.h" \) -not -path "**/jansson-2.14/*" -exec clang-format -i {} \;
test: lint
./bin/run_tests
psql:
./bin/postgres-init
psql-reset:
./bin/postgres-reset
prepare-release revision='master':
#!/usr/bin/env bash
set -euxo pipefail
git checkout {{ revision }}
git pull origin {{ revision }}
echo >> CHANGELOG.md
git log --pretty='format:- %s' >> CHANGELOG.md
$EDITOR CHANGELOG.md
$EDITOR Cargo.toml
version=`sed -En 's/version[[:space:]]*=[[:space:]]*"([^"]+)"/\1/p' Cargo.toml | head -1`
cargo check
git checkout -b release-$version
git add -u
git commit -m "Release $version"
gh pr create --web
publish-release revision='master':
#!/usr/bin/env bash
set -euxo pipefail
rm -rf tmp/release
git clone git@github.com:parasitepool/para.git tmp/release
cd tmp/release
git checkout {{ revision }}
cargo publish
cd ../..
rm -rf tmp/release