Commit graph

445 commits

Author SHA1 Message Date
Boog900
34bb293f95
keep track of blockchain context validity internally. 2023-10-31 02:59:31 +00:00
Boog900
e1eaaf80d9
fix CI: Install dependencies (#33)
install boost, remove all targets except ubuntu
2023-10-29 01:11:55 +00:00
Boog900
7f5035ece2
Merge Add CI Actions (#31) 2023-10-29 00:42:37 +00:00
Boog900
7559532408
fix cryptonight builds with -O3 or -Ofast
taken from: https://github.com/monero-project/monero/pull/9042
2023-10-29 01:02:12 +01:00
Boog900
3a52b346e1
add tests to context sub-services + fix issues in other tests
+ fmt + clippy.
2023-10-29 00:39:58 +01:00
Boog900
2440ccbd8d
remove randomX lib 2023-10-29 00:08:37 +01:00
Boog900
216bedaf06
stop batching transactions across blocks when a hard-fork happens..
in the batch.
2023-10-27 00:55:08 +01:00
Boog900
d0bd17c560
use BufWritter to save the cache 2023-10-27 00:55:05 +01:00
Boog900
65378b0523
Merge pull request #30 from hinto-janai/main
add `hinto-janai.asc`
2023-10-26 12:07:13 +00:00
Boog900
0cac022605
batch the retrieval of outputs 2023-10-26 03:16:03 +01:00
hinto.janai
39b029f3e7
add CI actions 2023-10-25 21:07:13 -04:00
hinto.janai
049cec184f
add hinto-janai.asc 2023-10-25 20:39:57 -04:00
Boog900
cb7d8b7b5e
fix cumulative diff calculations + sort timestamps before getting median
we were not accounting for the genesis blocks difficulty of 1.
2023-10-24 23:35:24 +01:00
Boog900
2033a2d16c
add rules for blocks
TODO: the tests need re-ordering they are just all chucked in at the moment.
2023-10-24 23:02:19 +01:00
Boog900
b727062e97
finish rules for v1 txs - clean up is needed 2023-10-24 20:18:46 +01:00
Boog900
9b7f778f60
fix getting the median timestamp
we were excluding the genesis block
2023-10-24 15:34:41 +01:00
Boog900
edccf83481
add saving cache to disk. 2023-10-24 02:25:11 +01:00
Boog900
6bfc4da4e4
cache more blockchain data to reduce number of RPC calls 2023-10-23 22:24:02 +01:00
Boog900
eeefe49d63
add block/ tx verifier svc 2023-10-23 19:14:40 +01:00
Boog900
50f9458528
move hardforks, weights and pow cache to single context with unified API 2023-10-22 17:27:37 +01:00
Boog900
387278b821
add more consensus rules. 2023-10-20 01:04:26 +01:00
Boog900
ac87f9998e
add error handling to cryptonight.
Also remove the variant enum for separate functions.
2023-10-18 12:52:43 +01:00
Boog900
21f1448343
add more config options for the verifier 2023-10-15 20:35:33 +01:00
Boog900
55b7699a82
add tests to cryptonight crate 2023-10-15 18:56:25 +01:00
Boog900
bfbafa4ed5
change epee-encoding to monero-epee-bin-serde 2023-10-09 21:10:16 +01:00
Boog900
20f6af7951
use get_blocks_by_height.bin in RPC 2023-10-05 17:54:19 +01:00
Boog900
88b646c5a3
add back monero-epee-bin-serde
I am now a maintainer of monero-rs, so I can keep this maintained and not using serde was annoying.
2023-10-05 14:24:42 +01:00
Boog900
f60bb1a678
init scan chain code 2023-10-04 14:50:13 +01:00
Boog900
d5595b7eaf
add logic to build all caches synchronously 2023-10-03 22:10:31 +01:00
Boog900
eb3c727b4d
add effective median weight calculations
+ more rpc speedup for the rest of the consensus lib
2023-10-02 21:07:11 +01:00
Boog900
d7798328b6
consensus: add block weight calculations + rcp speedup
Instead of asking for one block at a time, we ask for batches of blocks, which significantly speeds up getting blocks.
2023-09-28 12:21:06 +01:00
Boog900
545189f523
random-x: add dataset/ cache 2023-09-17 19:01:56 +01:00
Boog900
f9c2794af2
Add aes generators/ hash to random-x 2023-09-16 18:46:44 +01:00
Boog900
57630ed9fb
init random-x module
super scaler program generation/ execution is complete.
2023-09-14 00:23:10 +01:00
Boog900
0000ee96b3
Clean up some of the rpc code 2023-09-07 21:38:56 +01:00
Boog900
b243ff0021
Remove CryptoNight V3
there is no v3 monero goes straight from v2 -> v4 I can only guess this is because of the way monero calculates what variant to use:

5900ed3706/src/cryptonote_core/cryptonote_tx_utils.cpp (L702)
2023-09-07 21:24:33 +01:00
Boog900
b4711c7118
add references to monero protocol docs
+ skip genesis block in DifficultyCalculator
2023-09-06 19:50:49 +01:00
Boog900
ab3c496bbd
add difficulty calculations 2023-09-06 15:54:49 +01:00
Boog900
367ea1a837
add method to init the hard fork struct at a certain height. 2023-09-05 19:49:01 +01:00
Boog900
a56d8ea87f
fetch block headers in parallel and support multiple rpc endpoints
this significantly speeds up initiating the hardfork struct
2023-09-05 19:13:46 +01:00
Boog900
42548f733d
add cryptonight bindings 2023-09-05 11:56:07 +01:00
Boog900
2f08978e67
init consensus rules crate 2023-09-03 23:50:38 +01:00
Boog900
59e7e0b4e8
Remove donation address 2023-08-11 12:48:36 +01:00
Boog900
b483415c87
Add design document 2023-08-01 02:04:57 +01:00
Boog900
58a076f3aa
re-write README
This removes a lot of the content from the README.

I have also removed the MIT license file so people don't get confused.

This README is meant to be expanded in the future when more work has been done on Cuprate
2023-07-26 14:09:38 +01:00
Boog900
477d9e42f3
change monero-wire to use epee-encoding (#25)
* change monero-wire to use epee-encoding

* Add back unified `Message` enum

* Run clippy & fmt

* add back default val for top_version
2023-07-17 18:43:34 +01:00
Boog900
e6e8bdaf6c
Re-work levin to remove a lot of the complexities (#24) 2023-07-13 22:10:52 +01:00
Boog900
f9a735b51f
Add Cuprate's logo(s) + move pgp keys to misc (#23)
* Add Cuprate's logo(s) + move pgp keys to etc

* re-name folder

* use Logo on README instead of wordmark

* reduce size

* Update readme.md

* little correction on size

---------

Co-authored-by: Someone Else <118022351+SyntheticBird45@users.noreply.github.com>
2023-05-04 22:56:59 +01:00
Boog900
5f20342736
initial Abscissa bin (#18)
* abscissa init

* remove package in cargo.toml

* cargo fmt + remove more stuff fro toml

* bump rust edition
2023-04-26 19:22:06 +01:00
Boog900
a187d9a357
initial p2p code (#8)
* init

* save

* use macro to create the levin body enum

* add protocol docs and cargo fmt

* add response validation

* add client functionality to connection + fmt

* Add new cuprate-common crate
this crate will hold stuff needed across cuprate crates

+ init handshaker

* add stagenet & testnet hardforks + tests

+ cargo fmt

* split peer and protocol into separate crates
+ add sync state watcher

* finish initial sync states and add some tests

* save

* add initial address book

* cargo fmt

* save

* add pruning module to cuprate-common

* more address book updates
- added an address book client
- add some more address book requests
- add "NetZone"

* lots of changes

* cargo fmt

* combine p2p into one crate
they were all linked anyway

* cargo fmt

* turn the handshaker into a statemachine

* cargo fmt

* reduce the amt of copies when decoding

+ remove reliance on monero-rs

* update time_from_timestamp func

* cargo fmt
+ change qr code link
+ remove clippy.toml
2023-04-24 22:37:40 +01:00