Commit graph

288 commits

Author SHA1 Message Date
hinto.janai
fa1e5cafaf
doc fixes
Some checks failed
Audit / audit (push) Has been cancelled
Deny / audit (push) Has been cancelled
2024-07-08 17:08:21 -04:00
hinto.janai
0ce957389b
separate misc module 2024-07-08 16:49:29 -04:00
hinto.janai
45b51dd51a
macros: add type-wide attributes 2024-07-08 15:31:55 -04:00
hinto.janai
8bc3fe522e
other: add UNDOCUMENTED_ENDPOINTs 2024-07-08 15:25:48 -04:00
hinto.janai
04ecd4f72d
other: GetNetStats, GetOuts, PopBlocks, Update, PopBlocks 2024-07-08 15:13:08 -04:00
hinto.janai
9c27ff8311
other: GetLimit, SetLimit, OutPeers, InPeers 2024-07-08 14:25:14 -04:00
hinto.janai
fd9cde1e51
other: StopDaemon 2024-07-07 20:47:02 -04:00
hinto.janai
06265877cf
other: GetTransactionPoolStats 2024-07-07 20:42:31 -04:00
hinto.janai
416e2c4928
bin: GetTransactionPoolHashes 2024-07-07 20:37:36 -04:00
hinto.janai
5b765ed796
other: SetLogCategories, SetBootstrapDaemon, GetTransactionPool 2024-07-07 20:32:35 -04:00
hinto.janai
e6d5709963
other: StartMining, StopMining, MiningStatus, GetPeerList, SetLogHashRate, SetLogLevel 2024-07-07 20:22:26 -04:00
hinto.janai
d826c4f15b
other: IsKeyImageSpent, SendRawTransaction 2024-07-07 18:24:37 -04:00
hinto.janai
113c27b8d3
other: GetTransactions 2024-07-07 18:06:56 -04:00
hinto.janai
a694ac5667
bin: GetOuts 2024-07-07 16:54:11 -04:00
hinto.janai
e60afa53fb
bin: GetBlocks, GetBlocksByHeight, GetHashes, GetOutputIndexes 2024-07-07 16:44:11 -04:00
hinto.janai
3557ee63bf
add misc module, start bin and other 2024-07-07 16:29:24 -04:00
hinto.janai
57e9bd1efa
document private items 2024-07-05 20:35:52 -04:00
hinto.janai
a3da860e5d
fix docs 2024-07-05 19:36:03 -04:00
hinto.janai
57a98e58a0
json: add FlushCache, AddAuxPow 2024-07-04 20:52:42 -04:00
hinto.janai
6f1289507f
json: add GetMinerData, PruneBlockchain, CalcPow 2024-07-04 20:41:06 -04:00
hinto.janai
e19dfb40ee
json: add GetTransactionPoolBacklog, GetOutputDistribution 2024-07-04 17:33:03 -04:00
hinto.janai
32730272ea
json: add SyncInfo 2024-07-03 20:34:45 -04:00
hinto.janai
255c5540aa
json: add GetFeeEstimate, GetAlternateChains, RelayTx 2024-07-03 20:28:43 -04:00
hinto.janai
b592ee0bf8
json: add GetVersion, GetCoinbaseTxSum, GetOutputHistogram, FlushTransactionPool, Banned 2024-07-03 20:13:26 -04:00
hinto.janai
ea7f6fb2a5
json: define GetInfo, define ban types 2024-07-03 19:45:52 -04:00
hinto.janai
4bad15965e
add more defaults 2024-07-03 17:43:39 -04:00
hinto.janai
352ab2015a
add struct ConnectionInfo, add macro for misc types 2024-07-03 17:23:37 -04:00
hinto.janai
e5c833c996
json: add get_block, get_block_headers_range 2024-07-03 16:58:19 -04:00
hinto.janai
d0981da311
support serde/epee default values 2024-07-03 16:40:21 -04:00
hinto.janai
72bd1673d6
add misc.rs for root misc types 2024-07-03 15:57:04 -04:00
hinto.janai
e1dcd8e724
rpc: fix macro usage 2024-07-02 21:21:53 -04:00
hinto.janai
0227c1b793
base: remove unneeded base types 2024-07-02 21:21:47 -04:00
hinto.janai
2d54d2a19a
macros: split type generator macro up 2024-07-02 21:21:33 -04:00
hinto.janai
9a90d5be40
fix clippy 2024-07-01 21:04:24 -04:00
hinto.janai
c7ec8c7d9b
rpc: fix doc links 2024-07-01 20:58:15 -04:00
hinto.janai
1a90c75f42
rpc: use feature flags in misc types 2024-07-01 20:53:16 -04:00
hinto.janai
a85d4b845a
rpc: use feature flags in type generator macro 2024-07-01 20:53:06 -04:00
hinto.janai
161eeb7be9
rpc: add/doc feature flags 2024-07-01 20:52:57 -04:00
hinto-janai
6ce177aeca
storage: add key sorting (#198)
Some checks failed
Audit / audit (push) Has been cancelled
CI / fmt (push) Has been cancelled
CI / typo (push) Has been cancelled
CI / ci (macos-latest, stable, bash) (push) Has been cancelled
CI / ci (ubuntu-latest, stable, bash) (push) Has been cancelled
CI / ci (windows-latest, stable-x86_64-pc-windows-gnu, msys2 {0}) (push) Has been cancelled
Deny / audit (push) Has been cancelled
* database: modify `trait Key`, don't blanket impl

* heed: create `KeyHeed<T>` wrapper type

* fix backend/tests

* blockchain: `impl Key PreRctOutputId`

* database: `StorableStr`, docs, tests

* key: docs, cleanup

* fixes

* heed: simplify types

* storable: remove doc

* heed: use `INTEGER_KEY` instead of custom compare fn

* add docs, tests

* database: document `create_db` invariant

* key: `Lexicographic` -> `Default`

* redb: fix `clear_db` behavior

* fix docs
2024-07-01 20:24:48 +01:00
fb1f071faf
P2P: fix block downloader test (#205)
make sure timeout is non-zero
2024-07-01 20:23:59 +01:00
f91be58a7f
P2P: Fix freeze in D++ (#204)
* Fix d++ router freeze

* update docs

* fix imports

* fix clippy

* Update p2p/dandelion-tower/src/lib.rs

Co-authored-by: hinto-janai <hinto.janai@protonmail.com>

---------

Co-authored-by: hinto-janai <hinto.janai@protonmail.com>
2024-07-01 20:23:40 +01:00
dependabot[bot]
7e9891de5b
build(deps): bump curve25519-dalek from 4.1.2 to 4.1.3 (#197)
Some checks failed
Audit / audit (push) Has been cancelled
Deny / audit (push) Has been cancelled
CI / fmt (push) Has been cancelled
CI / typo (push) Has been cancelled
CI / ci (macos-latest, stable, bash) (push) Has been cancelled
CI / ci (ubuntu-latest, stable, bash) (push) Has been cancelled
CI / ci (windows-latest, stable-x86_64-pc-windows-gnu, msys2 {0}) (push) Has been cancelled
Bumps [curve25519-dalek](https://github.com/dalek-cryptography/curve25519-dalek) from 4.1.2 to 4.1.3.
- [Release notes](https://github.com/dalek-cryptography/curve25519-dalek/releases)
- [Commits](https://github.com/dalek-cryptography/curve25519-dalek/compare/curve25519-4.1.2...curve25519-4.1.3)

---
updated-dependencies:
- dependency-name: curve25519-dalek
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-26 22:59:11 +01:00
hinto-janai
a438279aa8
storage: split cuprate-blockchain <-> cuprate-database (#160)
* storage: port some code `cuprate-blockchain` -> `database`

* database: remove `Tables` references

* database: remove old `cuprate-blockchain` type references

* find/replace `cuprate_blockchain` -> `database`, add `create_db()`

* database: fix redb

* database: use readme for docs, link in `lib.rs`

* database: fix `open_db_ro`, `open_db_rw`, `create_db` behavior

* database: add open table tests

* database: fix tests, remove blockchain specific references

* database: remove `ReaderThreads`, make `db_directory` mandatory

* initial `cuprate-blockchain` split

* fix doc links

* rename, fix database config

* blockchain: create `crate::open()`, `OpenTables::create_tables()`

* more compat fixes

* fix imports

* fix conflicts

* align cargo.toml

* docs

* fixes

* add `unused_crate_dependencies` lint, fix

* blockchain: add open table tests
2024-06-26 22:51:06 +01:00
hinto-janai
e405786a73
rpc: start cuprate-rpc-types (#147)
* rpc: add `monero-rpc-types`

* lib.rs: add lints

* add base files, deps

* fix macro generation, doc test

* add `strum`, add `misc` module

* document struct generation macro

* add `GetHeight`

* lib.rs: create re-export macro

* macro changes, add few more types

* docs

* `monero-rpc-types` -> `cuprate-rpc-types`

* fix modules

* specify commit in macro, add () type aliases

* macro docs, fixes

* add `Status::Other(String)`

* add TODO for `strum`

* Update rpc/types/Cargo.toml

Co-authored-by: Boog900 <boog900@tutanota.com>

* add `BinaryString`

* add `ResponseBase`

* add `CORE_RPC_*` constants

* fix status; use `CORE_RPC_*` constants

* cargo.toml: add `epee_encoding`

* rpc: add epee_encoding impl for `Status`

* macro: add epee_encoding for every type

* remove `strum`

* add response bases

* add `CORE_RPC_STATUS_UNKNOWN`

* add response/request bases for epee

* create `base` module

* use different type for macro example

* move base / root types around

* docs, status serde test

* status: use `Status::Unknown` for `epee_default_value`

* json: add missing fields to `GetBlockTemplateRequest`

not sure I missed these

cc73fe7116/src/rpc/core_rpc_server_commands_defs.h (L947-L950)

---------

Co-authored-by: Boog900 <boog900@tutanota.com>
2024-06-26 22:24:05 +01:00
5c08d1a0e2
Consensus: fix Rx VM initialization (#190)
Some checks are pending
CI / typo (push) Waiting to run
CI / fmt (push) Waiting to run
CI / ci (macos-latest, stable, bash) (push) Waiting to run
CI / ci (ubuntu-latest, stable, bash) (push) Waiting to run
CI / ci (windows-latest, stable-x86_64-pc-windows-gnu, msys2 {0}) (push) Waiting to run
* fix Rx VM initialization

* fix imports

* Apply suggestions from code review

Co-authored-by: hinto-janai <hinto.janai@protonmail.com>

* use checked_sub

---------

Co-authored-by: hinto-janai <hinto.janai@protonmail.com>
2024-06-25 01:55:04 +01:00
hinto-janai
4b93dbec4c
workspace: enforce crate/directory naming scheme (#164)
Some checks failed
Audit / audit (push) Has been cancelled
Deny / audit (push) Has been cancelled
CI / fmt (push) Has been cancelled
CI / typo (push) Has been cancelled
CI / ci (macos-latest, stable, bash) (push) Has been cancelled
CI / ci (ubuntu-latest, stable, bash) (push) Has been cancelled
CI / ci (windows-latest, stable-x86_64-pc-windows-gnu, msys2 {0}) (push) Has been cancelled
* rename all directories and crates

* fix all `use`

* fix doc link

* `dandelion/` -> `dandelion-tower/`

* fix epee-encoding test

* fix `json-rpc`

* fix pruning

* crate import fixes

* fix leftover merge conflicts

* fix `epee-encoding`
2024-06-24 02:30:47 +01:00
519d871ccb
books: move in protocol book (#169)
* add protocol bool

* update url

* fix typos

* Cuprate's protocol book -> Monero

* Apply suggestions from code review

Co-authored-by: hinto-janai <hinto.janai@protonmail.com>

* fix typo

* POW -> PoW

* revert weird line changes

---------

Co-authored-by: hinto-janai <hinto.janai@protonmail.com>
2024-06-24 01:23:39 +01:00
hinto-janai
fe1d5faac9
contributing: expand issue/PR sections, re-format (#186)
Some checks are pending
Audit / audit (push) Waiting to run
CI / fmt (push) Waiting to run
CI / typo (push) Waiting to run
CI / ci (macos-latest, stable, bash) (push) Waiting to run
CI / ci (ubuntu-latest, stable, bash) (push) Waiting to run
CI / ci (windows-latest, stable-x86_64-pc-windows-gnu, msys2 {0}) (push) Waiting to run
Deny / audit (push) Waiting to run
* contributing.md: expand tracking issue/pr section

* add tracking issue section

* re-format sections

* typos

* fix links

* add `.github/pull_request_template.md`

* add `Pull request title and description` section

* wording
2024-06-22 01:33:29 +01:00
10aac8cbb2
P2P: Block downloader (#132)
* impl async buffer

* clippy

* p2p changes

* clippy

* a few more docs

* init cuprate-p2p

* remove some unrelated code and add some docs

* start documenting client_pool.rs

* add more docs

* typo

* fix docs

* use JoinSet in connection maintainer

* small changes

* add peer sync state svc

* add broadcast svc

* add more docs

* add some tests

* add a test

* fix merge

* add another test

* unify PeerDisconnectFut and add more docs

* start network init

* add an inbound connection server

* remove crate doc for now

* fix address book docs

* fix leak in client pool

* correct comment

* fix merge + add some docs

* review comments

* init block downloader

* fix doc

* initial chain search

* add chain_tracker

* move block downloader to struct

* spawn task whe getting blocks

* check for free peers and handle batch response

* add test bin

* working block downloader

* dynamic batch sizes

* dandelion_tower -> dandelion-tower

* fix async-buffer builds

* check if incoming peers are banned

* add interface methods

* update docs

* use a JoinSet for background network tasks

* dynamic batch size changes

* Keep a longer of queue of blocks to get

* more checks on incoming data

* fix merge

* fix imports

* add more docs

* add some limits on messages

* keep peers that dont have the current need data

* fix clippy

* fix .lock

* fix stopping the block downloader

* clean up API and add more docs

* tracing + bug fixes

* fix panic

* doc changes

* remove test_init

* remove spammy log

* fix previous merge

* add a test

* fix test

* remove test unwrap

* order imports correctly

* clean up test

* add a timeout

* fix tests

* review fixes

* make `BlockDownloader` pub

* make `initial_chain_search` pub

* make `block_downloader` private

* Apply suggestions from code review

Co-authored-by: hinto-janai <hinto.janai@protonmail.com>

* split some sections into separate modules

* split chain requests

* sort imports

* check previous ID is correct

* fix typos

* Apply suggestions from code review

Co-authored-by: hinto-janai <hinto.janai@protonmail.com>

---------

Co-authored-by: hinto-janai <hinto.janai@protonmail.com>
2024-06-22 01:29:40 +01:00
hinto-janai
ff1172f2ab
epee: make {read,write}_varint public, create write_{bytes,container} (#185)
* make `{read,write}_varint` public, create `write_{container,bytes}`

* add doc tests to varint functions

* `write_container` -> `write_iterator`

* add `write_{iterator,bytes}` doc test

* fix `write_iterator()` doc
2024-06-22 01:25:21 +01:00