-arithmetic.py- Defines isqrt function to calculate integer square roots of large integers. -shared.py- Defines averageNonceTrialsPerByteActual, countNonceTrialsPerByteActual, and the addInventory function (to calculate these values and add objects to inventory). Code updated to call addInventory when adding objects to inventory. -helper_startup.py- Adds 'averagenoncetrialsperbyteactual' and 'countnoncetrialsperbyteactual' to newly generated keys.dat files. -class_sqlThread.py- Reads 'averagenoncetrialsperbyteactual' and 'countnoncetrialsperbyteactual' from keys.dat (or adds them if they don't exist) and resets 'countnoncetrialsperbyteactual' to its square root (with arithmetic.isqrt) when vacuuming messages.dat. -class_singleCleaner.py- Writes 'averagenoncetrialsperbyteactual' and 'countnoncetrialsperbyteactual' to disk when the sql database is written to disk. -class_singleWorker.py- Defines prioritizeTarget function (to calculate POW targets with a minimum of averageNonceTrialsPerByteActual, for large inventories, and averageNonceTrialsPerByteActual/2, for small inventories). Code updated to call shared.addInventory when adding objects to inventory and to call prioritizeTarget as the last step when calculating targets. -class_receiveDataThread- Sorts outgoing inventory by decreasing nonceTrialsPerByteActual (ie increasing proof strength). Warning: "Max acceptable difficulty" settings are not implemented as method for limiting the POW specified by the new parameter. We will not be implementing it, but will instead focus on porting the spam fix to the upcoming V3 protocol. |
||
---|---|---|
archpackage | ||
debian | ||
desktop | ||
ebuildpackage | ||
man | ||
puppypackage | ||
rpmpackage | ||
slackpackage | ||
src | ||
.gitignore | ||
arch.sh | ||
configure | ||
COPYING | ||
debian.sh | ||
ebuild.sh | ||
generate.sh | ||
INSTALL.md | ||
LICENSE | ||
Makefile | ||
osx.sh | ||
puppy.sh | ||
README.md | ||
rpm.sh | ||
slack.sh |
PyBitmessage
Bitmessage is a P2P communications protocol used to send encrypted messages to another person or to many subscribers. It is decentralized and trustless, meaning that you need-not inherently trust any entities like root certificate authorities. It uses strong authentication, which means that the sender of a message cannot be spoofed, and it aims to hide "non-content" data, like the sender and receiver of messages, from passive eavesdroppers like those running warrantless wiretapping programs.
Development
Bitmessage is a collaborative project. You are welcome to submit pull requests although if you plan to put a non-trivial amount of work into coding new features, it is recommended that you first solicit feedback on the DevTalk pseudo-mailing list: BM-2D9QKN4teYRvoq2fyzpiftPh9WP9qggtzh