Only build fuzz tests in a fuzz build, and don't build other tests.
Keeps fuzz compilers from instrumenting other tests, which are not fuzzed.
Resolves#7232
Both drop_connection and add_host_fail can drop the connection,
which invalidates the context, and thus the address it contains.
Thanks to wfaressuissia[m] for lots of help and prodding when
debugging this
- rolling_median: tried to free uninitialized pointer in a constructor
- net_node.inl: erase-remove idiom was used incorrectly. remove_if doesn't actually remove elements, see http://cpp.sh/6fcjv
- bulletproofs.cc: call to sizeof() instead of vector.size(), luckily it only impacts performance and not code logic there
These are functions that check whether a tx is in the db, so whether
it is there or not is really not interesting, and it seems to scare
people from time to time
do not include blocked hosts in peer lists or public node lists by default,
warn about no https on clearnet and about untrusted peers likely being spies
If enabled, pulls IPs to block on blocklist.moneropulse.*, and
blocks then for 8 days (so IPs dropping from the list will
eventually get unblocked, and DNS failures don't result in
instant clearing of the blocklist).
Enable with --enable-dns-blocklist
Add monero_add_minimal_executable and use in tests
This is done in order not to have to relink targets, when just an .so changed, but not its interface.
Tests running after being compiled with `make debug-test` failed with
```
[ FAILED ] block_reward_and_current_block_weight.fails_on_huge_median_size
[ FAILED ] block_reward_and_current_block_weight.fails_on_huge_block_weight
```
With the introduction of the patch in
be82c40703 (diff-1a57d4e6013984c420da98d1adde0eafL113)
the assertions checking the weight of the median and current block
against a size limit were removed. Since the limit is now enforced by a
long divisor and a uint64_t type, checking in a separate test makes
little sense, so they are removed here.
When given a wrong argument, some daemon commands failed with "unknown
command" error, instead of a meaningful error message. This patch
brings consistency into the error messages.
In several places, this patch removes relatively useful messages,
and replaces them with more generic ones. E.g.,
- std::cout << "use: print_pl [white] [gray] [<limit>] [pruned]
[publicrpc]" << std::endl;
+ std::cout << "Invalid syntax: Too many parameters. For more
details, use the help command." << std::endl;
There are two reasons for this:
1. Consistency.
2. Removing duplicates.
The detailed information about the parameters is present in
the help messages already. Having it in two places increases
the risk that the messages would get out of date.
A 20% fluff probability increases the precision of a spy connected to
every node by 10% on average, compared to a network using 0% fluff
probability. The current value (10% fluff) should increase precision by
~5% compared to baseline.
This decreases the expected stem length from 10 to 5. The embargo
timeout was therefore lowered to 39s; the fifth node in a stem is
expected to have a 90% chance of being the first to timeout, which is
the same probability we currently have with an expected stem length of
10 nodes.
IPv6 addresses include a range that can map IPv4 addresses,
which allowed those mapped addresses to bypass filtering.
This filter should be replaced by AS filtering at some point.
Open Collective is an online funding platform for open source software and collaborative communities. The platform brings together legal entities that act as a “Fiscal Host”, “Collectives” (unincorporated, community-based projects), and individuals interested in supporting projects with donations. Fiscal hosts hold donations for collectives in trust and handle all the taxes and legal stuff.
Wownero is hosted by Open Collective Europe, a Brussels-based non-profit that hosts many other collectives, such as Manjaro, EndeavourOS, Xfce, and peertube.social. If you would like donate to the Wownero Project using this method, you can check out our [Wownero - Open Collective](https://opencollective.com/wownero) page.
## Release staging and Contributing
**Anyone is welcome to contribute to Wownero's codebase!**
@ -70,7 +67,7 @@ If you have a fix or code change, feel free to submit it as a pull request. Ahea
Things to Do, Work in Progress, and Help Wanted tasks are tracked in the [Meta](https://git.wownero.com/wownero/meta/issues) repo.
Join `#wownero` on IRC OFTC to participate in development conversation.
Join `#wownero-dev` on IRC freenode to participate in development conversation.
## Scheduled software upgrades
@ -88,7 +85,6 @@ Dates are provided in the format YYYY-MM-DD.
| 160,777 | 2019-11-20 | Gaping Goatse | v0.7.0.0 | v0.7.1.0 | Only allow >= 2 outputs, change to the block median used to calculate penalty, rct sigs in coinbase forbidden, 4 unlock time as protocol rule
Packaging for your favorite distribution would be a welcome contribution!
**DISCLAIMER: These packages are not part of this repository, and as such, do not go through the same review process to ensure their trustworthiness and security.**
@ -160,10 +163,10 @@ To run in background:
To run as a systemd service, copy
[wownerod.service](utils/systemd/wownerod.service) to `/etc/systemd/system/` and
[wownerod.conf](wownerod.conf) to `/etc/`. The [example
[wownerod.conf](utils/conf/wownerod.conf) to `/etc/`. The [example
service](utils/systemd/wownerod.service) assumes that the user `wownero` exists
and its home is the data directory specified in the [example
config](wownerod.conf).
config](utils/conf/wownerod.conf).
Once node is synced to network, run the CLI wallet by entering:
@ -173,37 +176,26 @@ Type `help` in CLI wallet to see standard commands (for advanced options, type `
## Tor Anonymity Network
### Ubuntu
* `sudo apt-get update && sudo apt-get install tor -y`
copy your onion address and share node with others [here](https://monero.fail/?crypto=wownero) and [here](https://forum.wownero.com/t/wownero-tor-onion-sites/623)
To share your node over p2p, uncomment first line of wownerod.conf and add your onion address.
More information on running Tor and i2p nodes is available [here](https://forum.wownero.com/t/how-to-setup-a-full-node-with-tor-i2p/588)
Use port `9050` instead of `9150` if you installed Tor as a standalone daemon. For more information, check out [ANONYMITY_NETWORKS](https://git.wownero.com/wownero/wownero/src/branch/master/ANONYMITY_NETWORKS.md).
constuint64_tbp_base=(32*((plus?6:9)+7*2))/2;// notional size of a 2 output proof, normalized to 1 proof (ie, divided by 2)
constuint64_tbp_base=368;
constsize_tn_outputs=tx.vout.size();
if(n_padded_outputs<=2)
return0;
@ -114,7 +113,7 @@ namespace cryptonote
while((1u<<nlr)<n_padded_outputs)
++nlr;
nlr+=6;
constsize_tbp_size=32*((plus?6:9)+2*nlr);
constsize_tbp_size=32*(9+2*nlr);
CHECK_AND_ASSERT_THROW_MES_L1(n_outputs<=BULLETPROOF_MAX_OUTPUTS,"maximum number of outputs is "+std::to_string(BULLETPROOF_MAX_OUTPUTS)+" per transaction");
constcommand_line::arg_descriptor<uint64_t>arg_bg_mining_min_idle_interval_seconds={"bg-mining-min-idle-interval","Specify min lookback interval in seconds for determining idle state",miner::BACKGROUND_MINING_DEFAULT_MIN_IDLE_INTERVAL_IN_SECONDS,true};
constcommand_line::arg_descriptor<uint16_t>arg_bg_mining_idle_threshold_percentage={"bg-mining-idle-threshold","Specify minimum avg idle percentage over lookback interval",miner::BACKGROUND_MINING_DEFAULT_IDLE_THRESHOLD_PERCENTAGE,true};
constcommand_line::arg_descriptor<uint16_t>arg_bg_mining_miner_target_percentage={"bg-mining-miner-target","Specify maximum percentage cpu use by miner(s)",miner::BACKGROUND_MINING_DEFAULT_MINING_TARGET_PERCENTAGE,true};
constcommand_line::arg_descriptor<std::string>arg_spendkey={"spendkey","Specify secret spend key used for mining","",true};
constcommand_line::arg_descriptor<std::string>arg_vote={"vote","Vote for proposals.","",true};
CHECK_AND_ASSERT_MES(b.miner_tx.unlock_time==height+CRYPTONOTE_MINED_MONEY_UNLOCK_WINDOW_V2,false,"coinbase transaction transaction has the wrong unlock time="
CHECK_AND_ASSERT_MES(b.miner_tx.unlock_time==height+CRYPTONOTE_MINED_MONEY_UNLOCK_WINDOW,false,"coinbase transaction transaction has the wrong unlock time="