1
0
mirror of https://github.com/romanz/electrs.git synced 2024-11-19 09:54:09 +01:00
Commit Graph

184 Commits

Author SHA1 Message Date
Roman Zeyde
a5ef325d5a
Bump version 2021-11-19 09:09:53 +02:00
Roman Zeyde
304426d0b2 Update MSRV requirements to Rust 1.48 2021-10-31 15:53:22 +02:00
Roman Zeyde
3731abd7ee Bump env_logger to 0.9 2021-10-31 09:19:00 +02:00
Roman Zeyde
86488f699b
Bump version 2021-10-30 16:12:23 +03:00
Roman Zeyde
cdea505960 Build rocksdb with conditional SSE support
See 4935c28609.

Should fix https://github.com/romanz/electrs/issues/536.
2021-10-25 15:05:21 +03:00
will
06e51bdb8f Add a feature to ignore default config files 2021-10-22 10:47:12 +03:00
Roman Zeyde
be071b2111 Update tiny_http
Fix #575
2021-10-19 20:17:32 +03:00
Roman Zeyde
e3ea373472
Release 0.9.1 2021-10-18 11:28:00 +03:00
Roman Zeyde
632fe4c622 Expose index DB size as Prometheus gauge metric
Fixes #541.
2021-10-10 21:25:35 +03:00
Roman Zeyde
ca93d3c75c Fix process-related metrics collection feature
Previously, it wasn't enabled when building with:
```
cargo build --all --features "prometheus/process" --release
```
2021-10-05 13:14:56 +03:00
Roman Zeyde
60c1313c19 Bump prometheus to 0.13 2021-10-04 10:10:10 +03:00
Roman Zeyde
557911e3ba
Release 0.9.0 2021-09-30 10:13:10 +03:00
Roman Zeyde
7c55c784c3 Use bitcoincore-rpc 0.14.0 release
Since it now uses `bitcoin` 0.27
2021-09-23 18:37:02 +03:00
Roman Zeyde
5ae3d6526e Update 0.9.0-rc2 release notes 2021-09-23 18:09:58 +03:00
Roman Zeyde
3041e89cd2 Bump bitcoin crate to 0.27.1
Fixes #490.
Also, reverts 52dd59c117.
2021-09-20 17:46:30 +03:00
Roman Zeyde
2ded459d0c Don't use prometheus::process_collector::ProcessCollector by default
Following #491.

It can be re-enabled by:

```
cargo build --release --features prometheus/process
```
2021-09-19 14:10:49 +03:00
Roman Zeyde
77b47ec351 Document the reasons for using custom RocksDB release 2021-09-18 09:45:18 +03:00
Roman Zeyde
357bfe896d Use a custom release of rocksdb 2021-09-18 09:01:29 +03:00
Roman Zeyde
32b6340cc1 Use core-rpc instead of bitcoincore-rpc
https://github.com/RCasatta/rust-bitcoincore-rpc
2021-09-17 23:42:57 +03:00
Martin Habovstiak
577f54195b Auto reindex when old database is detected
This implements automatic reindexing of old database, turned on by
default. When an old database is detected and `auto_reindex` is turned
on the database will be destroyed so that `electrs` can re-sync. The
user can still turn this off to check db format.

The help message says "or inconsistent" - this is not implemented but we
could in the future and it seems reasonable to explicitly state that
this option will control that thing as well.

Note: 0.8.x versions of `electrs` didn't contain format information -
so we check if the database is empty and assuming it's legacy if it's
not empty but without format information.

The code is also restructured a bit and a few tests are added.
2021-09-17 15:20:54 +03:00
Roman Zeyde
3f41cdaa55 Add snappy to RocksDB features
It would be useful to detect old DBs:
https://github.com/romanz/electrs/pull/477#discussion_r707600255

RocksDB compilation time increases 1m03s -> 1m07s (+6%).
Total electrs build time is 2m05s.
2021-09-15 17:26:45 +03:00
Roman Zeyde
2f24d0774a Downgrade librocksdb-sys to 6.11.4 2021-09-10 21:04:29 +03:00
Roman Zeyde
269e756383 Next release will be 0.9.0-rc1 2021-09-09 13:39:04 +03:00
Roman Zeyde
f9346d2a1d Drop hyper dependency
https://rustsec.org/advisories/RUSTSEC-2021-0078

Use tiny_http for Prometheus instead.
2021-08-27 20:53:11 +03:00
Roman Zeyde
0516aead2a Bump bitcoin dependency to 0.27
A bit hacky solution until https://github.com/rust-bitcoin/rust-bitcoincore-rpc/pull/196 is merged.
2021-08-27 19:46:56 +03:00
Roman Zeyde
45833c3b61 Use parking_lot::{Mutex, RwLock} instead of std::sync 2021-06-14 13:20:21 +03:00
Roman Zeyde
d2fff752cd Build hyper when 'metrics' feature is enabled 2021-06-06 16:15:47 +03:00
Roman Zeyde
8bb6d2ab20 Drop rust-crypto unneeded dependency 2021-05-31 21:26:35 +03:00
Roman Zeyde
15ec11f8b6 Disable default features for rocksdb dependency 2021-05-30 21:38:51 +03:00
Roman Zeyde
b0deaecdc4 Allow optional metrics collection
Can be disable by `--no-default-features`.

Also, enable RocksDB ZSTD compression (removing the feature).
2021-05-29 12:24:19 +03:00
Roman Zeyde
ce0018be57 Fix rocksdb build on RPi4 2021-05-20 18:20:14 +03:00
Roman Zeyde
8890c4bbb7 Allow disabling prometheus' process collector
It is supported only on Linux.
2021-04-29 20:30:33 +03:00
Roman Zeyde
bc14b7cfdd Bump prometheus 2021-04-29 20:12:32 +03:00
Roman Zeyde
3780d7d48b Refactor and sync using p2p protocol 2021-04-14 18:38:59 +03:00
Franck Royer
3c4cf72960 Set Rust toolchain to 1.41.1
The project does not compile on 1.34.0 because it uses
the lockfile format introduced in 1.38.0.

Do note that Debian stable at this time uses Rust 1.41.1.

Setting a specific toolchain version is good practice for
binary project and remove potential issues of incompatible
toolchain for users trying to build the project.
2020-09-28 13:27:15 +03:00
Roman Zeyde
aef1347859 Fix support for Rust 1.41.1
As it is the current Rust version at Debian stable:
https://packages.debian.org/stable/rustc
2020-09-28 11:13:00 +03:00
Dr. Maxim Orlovsky
af6ff09a27 Removing BitcoinHash trait to adopt new bitcoin crate API 2020-09-18 18:36:04 +02:00
Roman Zeyde
840da895ce
Bump version 2020-07-01 22:50:32 +03:00
Roman Zeyde
ba12177404
Update configure_me
Following https://github.com/romanz/electrs/issues/247.
2020-06-18 18:33:25 +03:00
Roman Zeyde
7925babdd6
Revert "Update configure_me and other dependencies"
This reverts commit 687ae6c65b.
2020-06-18 18:28:17 +03:00
Roman Zeyde
1ca25531b7
Bump version 2020-06-03 18:37:01 +03:00
Roman Zeyde
687ae6c65b
Update configure_me and other dependencies 2020-06-03 17:32:50 +03:00
Dr. Maxim Orlovsky
969364af00 WIP on migrating to new bitcoin::hash_types
All types are replaced; only work on merkle types left,
which requires addition of the code
2020-04-20 00:28:23 +02:00
Roman Zeyde
cbc2214cd5
Bump version 2020-01-30 21:56:24 +02:00
Roman Zeyde
ccf6967d73
Bump version 2019-12-06 13:17:00 +02:00
Roman Zeyde
5833a9a213 Downgrade rocksdb to 0.12.2 to support more x86 CPUs
https://github.com/romanz/electrs/issues/193
2019-12-02 10:15:05 +02:00
Roman Zeyde
1498eed6bb
Bump version 2019-11-20 22:21:49 +02:00
Roman Zeyde
48622f4bfb Update rocksdb to 0.13.0 2019-11-19 15:08:32 +02:00
Roman Zeyde
ef3c387189
Bump version 2019-10-28 22:25:59 +02:00
Roman Zeyde
cd87a3aad5
Merge pull request #182 from Kixunil/update_configure_me
Update `configure_me` as well as other packages
2019-10-24 22:01:26 +03:00
Michel Kansou
71575de8a7 Update rust-bitcoin & bitcoin_hashes 2019-10-20 11:37:47 +02:00
Martin Habovstiak
5ac315ff3c Update configure_me as well as other packages
* This should resolve #180, not sure (couldn't get past rocksdb on 1.34)
* Uses new, cleaner way of specifying `config_spec.toml`
2019-10-18 17:14:53 +02:00
Roman Zeyde
a347e6719f
Bump version 2019-10-05 12:42:16 +03:00
Martin Habovstiak
35b3cededc Support for user-specified onfiguration files/dirs
This commit upgrades `configure_me` and adds support for `--conf` and
`--conf-dir` parameters, which load the configuration from the specified
place.
2019-09-28 23:13:50 +02:00
Martin Habovstiak
bcb04196c3 Updated to configure_me 0.3.5
This update fixes the issue with hypens and additionally makes error
messages from the build script nicer.

Fixes #170
2019-09-13 18:39:39 +02:00
Martin Habovštiak
bbc6fcb21d
Merge branch 'master' into configure_me 2019-09-07 11:33:13 +02:00
Roman Zeyde
05b653f7f5 Use AtomicU64 after updating to Rust >=1.34 2019-09-07 12:06:19 +03:00
Roman Zeyde
32015a762c Use TryInto to convert slices into array
Remove dependency on `arrayref`.
2019-09-07 12:05:43 +03:00
Martin Habovstiak
ec049b9ad5 Use configure_me instead of clap
Since use of configuration files is both mmore secure and more
convenient and clap doesn't support config files, this switches to
configure_me, which supports config files, env vars and also generating
man pages.

Closes #151
2019-09-06 20:16:51 +02:00
Roman Zeyde
fcbf16b9f1
Bump version 2019-07-27 17:42:32 +03:00
Roman Zeyde
5d37e7fe52
Bump version 2019-06-13 22:35:10 +03:00
Roman Zeyde
70d0c1d47f
Merge branch 'atomic-counter' 2019-06-13 22:25:29 +03:00
Roman Zeyde
bebbfa197d
Add support for latest Rust features via --features latest_rust 2019-06-13 22:18:27 +03:00
Roman Zeyde
83bbfaaca1
Build with LTO 2019-05-30 10:15:12 +03:00
Roman Zeyde
b52090da03
Bump version 2019-05-17 10:09:21 +03:00
Roman Zeyde
f8f53cebaf
Revert "Use TryInto to convert slices into array"
This reverts commit 62592dbabf to support
Rust 1.32 on Debian.
2019-05-10 21:45:19 +03:00
Roman Zeyde
1aeba092ec
Bump version 2019-05-09 11:48:02 +03:00
Roman Zeyde
2286efba87
Switch to signal-hook crate from deprecated chan-signal 2019-05-06 11:47:46 +03:00
Roman Zeyde
94e139934f
Bump version 2019-04-29 14:36:34 +03:00
Roman Zeyde
62592dbabf
Use TryInto to convert slices into array
Remove dependency on `arrayref`.
2019-04-29 13:28:10 +03:00
Roman Zeyde
8af98a3b9f
Update more crates 2019-03-28 15:10:45 +02:00
Roman Zeyde
18a1d29509
Update bitcoin to 0.18 2019-03-28 13:51:46 +02:00
Roman Zeyde
72eb1e1c62
Update rockdb to 0.12.1 2019-03-28 13:45:54 +02:00
Roman Zeyde
b2b7e1c42a
Bump version 2019-03-03 22:36:35 +02:00
Roman Zeyde
77ee699ed5
Update bitcoin crate to 0.17 2019-03-02 21:34:49 +02:00
Roman Zeyde
5037673af6
Upgrade Bitcoin crate 2019-01-21 14:47:26 +02:00
Roman Zeyde
ec7b0b7378
Upgrade Prometheus crate 2019-01-21 14:17:45 +02:00
Roman Zeyde
e996edbb82
Update RocksDB crate to 0.11 2019-01-13 10:01:29 +02:00
Roman Zeyde
5453ffe72a
Bump version 2018-12-23 09:55:54 +02:00
Roman Zeyde
5f2d4289dc
Support Rust 2018 edition
Builds on Rust 1.31
2018-12-08 11:40:04 +02:00
Roman Zeyde
09725e8615
Bump version 2018-11-22 11:24:23 +02:00
Roman Zeyde
582af3d697
Update rust-bitcoin to 0.15.1 and re-generate Cargo.lock 2018-11-10 21:40:07 +02:00
Roman Zeyde
42ab247776
Use LRU cache (instead of an unbounded HashMap) for transaction caching 2018-10-17 11:46:49 +03:00
Roman Zeyde
5895ad906d
Bump version 2018-10-14 14:40:55 +03:00
Roman Zeyde
4301abdd10
Bump version 2018-09-22 15:44:24 +03:00
Roman Zeyde
e09816db65
Bump version 2018-09-14 17:59:54 +03:00
Roman Zeyde
58ea2ed960
Allow higher concurrency for >dual core machines 2018-09-07 18:08:36 +03:00
Roman Zeyde
6af64b6106
Update sysconf to >=0.3.4 2018-08-29 23:28:13 +03:00
Riccardo Casatta
8d2f491e91 update rust-bitcoin dep to 0.14 2018-08-24 10:57:19 +02:00
Roman Zeyde
62bc2dc845
Bump version 2018-08-20 08:11:39 +03:00
Roman Zeyde
5869a833cd
Bump version 2018-08-14 11:17:29 +03:00
Roman Zeyde
652e577f24
Export more metrics from server
Add userspace CPU usage and # of file descriptors.
2018-08-06 18:44:18 +03:00
Roman Zeyde
a93284cd96
Export current process RSS size to Prometheus 2018-08-06 18:44:18 +03:00
Roman Zeyde
e4556e8929
Replace to-be-deprecated std:🔚:home_dir() with dirs::home_dir()
Found by building on nightly
2018-08-04 20:37:40 +03:00
Roman Zeyde
fa3ea2869a
Switch to spacejam/rust-rocksdb crate
for latest RocksDB (5.14.2)
2018-07-23 10:14:13 +03:00
Roman Zeyde
849c83ed64
Bump version 2018-07-14 18:04:27 +03:00
Roman Zeyde
4c7413db9d
Increase open files limit explicitly
Otherwise, full compaction may fail.
2018-07-12 14:44:10 +03:00
Roman Zeyde
fb372b2915
Split reading from indexing blk*.dat files
Also, use a single Vec<Row> for write operation
2018-07-10 15:37:56 +03:00
Roman Zeyde
586d6132d6
Use 'pingcap' RocksDB fork 2018-07-08 23:24:21 +03:00
Roman Zeyde
93f1b85cda
Use ms precision for logging 2018-07-07 11:02:29 +03:00