Commit graph

257 commits

Author SHA1 Message Date
Antioch Peverell
a50dcbfaa5
less txhashset locking ()
* less txhashset locking

* rework server stats a bit
2018-12-16 09:26:17 +00:00
Gary Yu
197d4f9575
TUI mining server status: add blocks found statistics ()
* TUI mining server status: add solutions found statistics

* rustfmt

* modify 'solutions found' as 'blocks found'
2018-12-15 10:10:33 +08:00
Antioch Peverell
675edb4a19 TUI Mining Screen (block hash and block height) ()
* add block hash to tui mining diff screen
include current header in there also

* rework the mining screen on the tui
show block hash as well as block height
fix the "off by one" error
2018-12-12 11:41:42 -08:00
Antioch Peverell
16641fe149
Cleanup compact block logging ()
* cleanup logging, error logging around compact blocks

* rustfmt
2018-12-11 14:11:58 +00:00
Antioch Peverell
2d4538c428
Clean shutdown via stop_state ()
* clean shutdown wip

* rustfmt

* introduce StopState that we can lock on

* rustfmt

* take lock on stop_state during critical processing (process_block_single etc.)

* rustfmt

* take lock on stop_state during chain::init()

* cleanup

* cleanup

* rustfmt

* docs/comments

* fixup servers tests

* cleanup p2p tests
2018-12-11 11:07:41 +00:00
Ignotus Peverell
e24e087fd1
Clean servers crate dev dependency on config () 2018-12-10 11:21:35 -08:00
David Burkett
62d644e1f4 Only MAX_BLOCK_HEADERS - 1 (511) headers sent during sync, instead of MAX_BLOCK_HEADERS (512) () 2018-12-10 10:35:07 -08:00
Ignotus Peverell
d179559005
One more use fell through the cracks in merge 2018-12-10 18:32:56 +00:00
Ignotus Peverell
a7712bf911
Merged upstream 2018-12-10 03:40:09 +00:00
hashmap
aedac483f5
Convert to Rust 2018 edition ()
* Convert to Rust 2018 edition

* Update gitignore
2018-12-08 00:59:40 +01:00
Ignotus Peverell
71664457de
Clean servers crate dev dependency on config 2018-12-07 22:43:37 +00:00
Ignotus Peverell
87bfd9aaa4
Mark all crates as publishable 2018-12-07 00:08:15 +00:00
Ignotus Peverell
ef55b35416
Support for genesis block that includes a coinbase ()
* Chain init now handles genesis body properly, related unit test creating the genesis with reward
* Avoid making block body public by adding a with_reward method
* apply_block in all genesis cases works
2018-12-06 15:38:15 -08:00
Yeastplume
b8c8840cec
Refactor wallet commands ()
* start wallet command refactoring

* another re-structuring attempt

* rustfmt

* begin splitting up wallet commands

* rustfmt

* clean up wallet arg checking

* rustfmt

* macro for arg parsing

* rustfmt

* factor out init commands

* rustfmt

* move recover to new format

* rustfmt

* add listen command to new format

* rustfmt

* Finish moving commands to new format

* rustfmt

* rustfmt

* propogate errors more cleanly

* rustfmt

* error handling cleanup
2018-12-06 12:04:02 +00:00
Dobby the House Elf
b8124676c7 Move libtx to core 2018-12-05 09:41:26 -08:00
Antioch Peverell
a3523028dc
Sync headers slice ()
* pass slices of headers around, not vec of headers

* rustfmt
2018-12-05 16:50:32 +00:00
Antioch Peverell
919fd84b78
cleanup unnecessary reset_head calls () 2018-12-03 22:27:03 +00:00
Antioch Peverell
7b07fe99a7
bump 0.4.1 -> 0.4.2 so we can watch the HF () 2018-11-30 11:20:12 +00:00
Yeastplume
16aa64bfab
Optional Slate Message ()
* add optional signed message to slate

* rustfmt
2018-11-29 12:49:00 +00:00
Antioch Peverell
b9cfcc777b
cleanup unused import () 2018-11-29 11:03:23 +00:00
Antioch Peverell
8e3a3e1a40
Replace "header by height" index with reads into the header MMR ()
* replace header_by_height index with reads into the header MMR

* rustfmt

* cleanup

* cleanup chain tests

* fix locate_headers to stop on our max header

* fix the deadlock in comact_blocks_db...

* cleanup and docs/comments
2018-11-29 09:26:24 +00:00
Ignotus Peverell
28e0d97e64
Cuckatoo size shift upgrade schedule ()
* Cuckatoo size shift upgrade schedule
* Move the schedule into graph_weight instead of messing with min edge bits
* Cleanup and fixes now that we have an agreed upon schedule
2018-11-28 14:05:55 -08:00
Antioch Peverell
add068f10d ust iterate over the locator... () 2018-11-28 09:46:15 -08:00
Yeastplume
fdb0197ef9
Cleanup of wallet owner API, rustdoc documentation ()
* doc start

* rustfmt

* tightening up wallet owner API

* rustfmt

* remove burn tx functions

* more tx api documentation

* rustfmt
2018-11-28 15:31:23 +00:00
Ignotus Peverell
c5b9d867ae
Cuckaroo Testnet4 hard fork ()
* PoW context is now properly picked depending on the chain type,
edge bits and block height. Height const for T4 hard fork leaving
a couple weeks to have miners in place. Removed now unused Cuckoo context.
* Simplified block siphash
* Fix servers crate compilation
* Tiny bit cleaner block siphash. Maybe.
* Cuckatoo min edge bits update for T4 and mainnet
* Fix header size tests, Cuckatoo31 default means one more bit per edge
* Remove redundant param from verify_size
2018-11-24 12:33:17 -08:00
Yeastplume
5992542152
Wallet Seed Encryption + BIP39 ()
* add encryption/decryption of wallet seed

* rustfmt

* update passphrase to encrypt/decrypt wallet

* rustfmt

* add conversion for old wallet seeds

* add ability to restore old seed

* rustfmt

* add bip39 recovery phrase support, conversion from existing seed formats

* rustfmt

* error recovery

* rustfmt

* add password prompts where required

* rustfmt

* add note specifying wallet conversion

* update documentation

* doc update
2018-11-24 10:03:09 +00:00
Antioch Peverell
66f2545186
Block accepted reorg aware ()
* block_accepted via adapter is now reorg aware
we skip reconciling the txpool is block is not most work
we skip reconciling the reorg_cache is not a reorg

* rustfmt

* logging tweaks

* rework block_accepted interface

* rustfmt

* rework reorg determination

* introduce BlockStatus to represent next vs reorg vs fork

* rustfmt

* cleanup logging

* log from adapter, even during sync
2018-11-21 14:35:38 +00:00
Antioch Peverell
e86eb641f1
move txpool reconcile_block to after block propagation in adapter () 2018-11-20 14:55:05 +00:00
Antioch Peverell
458a980470
[WIP] minimum_confirmations = 10 ()
* default to minimum_confirmation = 10
pass in minimum_confirmations to grin wallet info

* rustfmt

* rebase against master

* fixup wallet tests

* fixup server tests
2018-11-20 11:17:03 +00:00
Yeastplume
5ba163fa66
Provide wallet 'plugin' architecture ()
* remove receive_coinbase fn from wallet to wallet client

* start moving clients into separate mod

* rustfmt

* move wallet client + start listener into wallet 'clients'

* rustfmt

* refactor API to make it more modular and completely decouple sending

* rustfmt

* further decouple API from sending methods

* rustfmt

* remove wallet to wallet client trait

* rustfmt

* rename / refactor client + adapters

* rustfmt

* add adapter concept

* add midding node_clients dir

* add file and null adapters

* rustfmt

* remove receive from owner api

* factor out receiving slates into trait

* rustfmt

* adding listen trait

* rustfmt

* change listener to use trait

* rustfmt

* add test for file-based exchange

* replace http api send command

* rustfmt

* move controller out of libwallet and into top-level wallet dir

* rustfmt

* add moved controller
2018-11-19 19:47:40 +00:00
Yeastplume
5a06f5dac7
Split wallet client trait ()
* complete trait split

* rustfmt
2018-11-13 13:18:33 +01:00
Antioch Peverell
236fe56f60
ask for peers with PEER_LIST capability when asking for more peers ()
do not simply look for peers with the same capabilities we have
2018-11-13 10:59:33 +00:00
hashmap
f5b71b4190
Instantiate wallet once in wallet cli ()
Also remove extra Box to simplify type
2018-11-11 12:56:42 +01:00
Gary Yu
2352275dff
Suppress some peers logs by trace level instead of debug ()
* suppress some peers boring logs by trace instead of debug

* rustfmt
2018-11-11 07:30:14 +08:00
Gary Yu
9af9ca9518
refactor the state_sync to handle the long fork ()
* split horizon into two explicit values for cut through and txhashset request

* let node which has 2-7 days of history be able to handle forks larger than 2 days

* add test simulate_long_fork

* add pause/resume feature on p2p for tests

* refactor the state_sync

* ignore the test case simulate_long_fork for normal Travis-CI

* refactor function check_txhashset_needed to be shared with body_sync

* fix: state TxHashsetDone should allow header sync
2018-11-10 11:27:52 +08:00
Antioch Peverell
39ebb33ba1
bump 0.4.0 -> 0.4.1 (tx kernel broadcast support) () 2018-11-09 14:57:25 +00:00
Antioch Peverell
10c6f8d1ad
add "User Agent" column to peers in tui () 2018-11-09 14:47:28 +00:00
Antioch Peverell
d97a6c2189
[DNM] broadcast tx kernel hash (if supported by peer) ()
broadcast tx kernel hash (if supported by peer)
2018-11-07 09:28:17 +00:00
Ignotus Peverell
8b546632fe
Peer rate limiting ()
* Rate counter in peer conn to monitor traffic 
* Ban peers that trigger is_abusive
2018-11-06 17:51:22 -08:00
Ignotus Peverell
f276de1719
Revert , fixes , header head not updating on low diff 2018-11-05 01:50:33 +00:00
Antioch Peverell
12be191ecd
validate root of header MMR when processing headers (during sync and full blocks) ()
validate root of header MMR when processing headers (during sync and full blocks) ()
2018-11-01 09:51:32 +00:00
Gary Yu
5651fa7a8f add some log to help analysis root cause of () 2018-10-31 10:23:15 +00:00
Ignotus Peverell
6f14f4c998
Cleanup and simplify sync (locator, body, etc.) ()
* Cleanup syncer and sync header (locator)
* Simplify body sync
* Remove duplicate head in locator, add greater case in close_enough
* Various sync small fixes and tuning after testing
* More close_enough tests and related minor fixes
2018-10-30 14:09:24 -07:00
Antioch Peverell
d3b491674a Cleanup unused archive_mode param () 2018-10-30 11:36:28 -07:00
Blade Doyle
2587ef5eb0 Add shares edge_bits to the stratum submit log messages () 2018-10-29 11:27:27 -07:00
Antioch Peverell
17f15b6dae
Adapter check compact archive ()
* we do want to run compaction for archive nodes (from the adapter)

* rustfmt
2018-10-29 15:03:23 +00:00
Ignotus Peverell
46051ee174
improve minimum difficulty handling ()
* rename MIN_DIFFICULTY to UNIT_DIFFICULTY; define Difficulty::unit, fix INITIAL_DIFFICULTY
* improve minimum difficulty handling
* replace all Difficulty::one by ::min
* revert secondary scaling default in HeaderInfo; rename scaling_difficulty; refactor difficulty_data_to_vector
2018-10-27 10:37:44 -07:00
Ignotus Peverell
c083312ad4
Improve crate descriptors to be more cargo-friendly ()
* Update secp dependency to use crates.io version
* Add more details to various Cargo.toml
* Remove use of env variables that aren't reliably provided by cargo
2018-10-25 17:44:50 -07:00
Ignotus Peverell
a42d66efff
Merge branch 'master' into unitdiff 2018-10-25 14:20:41 -07:00
eupn
58e68a867e Remove unwrap() and add tx. pool error member to Error enum () 2018-10-25 16:00:39 +02:00