Difference between revisions of "Changelog"
Jump to navigation
Jump to search
PeterSurda (talk | contribs) (v0.6.2) |
|||
(37 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== PyBitmessage Changelog == | == PyBitmessage Changelog == | ||
+ | 0.6.2 | ||
+ | |||
+ | *Usability: | ||
+ | **many minor usability improvements, in particular helpful for beginners | ||
+ | **get rid of confusing log messages | ||
+ | **improved feedback when busy during shutdown | ||
+ | **UI feedback when problems with proxy | ||
+ | **UI feedback when local time is wrong | ||
+ | **UI feedback when C PoW module is not available | ||
+ | **folder loading performance improved | ||
+ | **translations updated | ||
+ | **chan join/create interface redesigned | ||
+ | **can select OpenCL vendor if multiple are available (previously it would have crashed) | ||
+ | **locale initialisation fixes | ||
+ | **contact support form and About dialog show the GIT head | ||
+ | **added setup.py (setuptools) for easier installation | ||
+ | **gentle warning if sending to a chan with a too low TTL | ||
+ | **message retransmit timing now works as the description | ||
+ | |||
+ | *Fixes: | ||
+ | **networking subsystem stability fixes | ||
+ | **multiprocessing python PoW fixed | ||
+ | **message parser fixes | ||
+ | **many smaller fixes | ||
+ | **OpenBSD listening socket fix (works IPv4-only mode instead of not at all) | ||
+ | |||
+ | *Backend: | ||
+ | **try to auto-build PoW module | ||
+ | **networking subsystem performance improvements | ||
+ | **refactoring of configuration interface, inventory, downloading and uploading tracking, known nodes and other minor parts | ||
+ | **refactoring to reduce circular imports and global variables | ||
+ | **support for OpenSSL 1.1.0 and LibreSSL | ||
+ | **some network parameters configurable, but mostly only through directly editing keys.dat | ||
+ | **network settings allow an optimised bootstrap provider mode | ||
+ | |||
+ | *Developers: | ||
+ | **extended encoding available for testing. Use it by holding Shift while clicking on Send | ||
+ | **extended encoding can be extended by adding new classes to the "messagetypes" directory | ||
+ | **directory structure reorganisation to get rid of obsolete code | ||
+ | |||
+ | *Linux: | ||
+ | **setup.py detects Ubuntu, Debian, Fedora, openSUSE, Gentoo and Guix | ||
+ | |||
+ | *FreeBSD/OpenBSD: | ||
+ | **separate Makefile for BSD make | ||
+ | **C PoW core count detection fixes for OpenBSD | ||
+ | **setup.py detects FreeBSD and OpenBSD | ||
+ | |||
+ | *Windows: | ||
+ | **improved error handling | ||
+ | **separate Makefile for Microsoft Visual C++ | ||
+ | **pyinstaller spec file updated | ||
+ | **64bit binary does not require MSVC Redistributable 2012 anymore and is mostly built with mingw instead of MSVC | ||
+ | **updated Python to 2.7.13 and OpenSSL to 1.0.2j/1.0.2k | ||
+ | |||
+ | *OSX: | ||
+ | **binary works with OpenCL | ||
+ | **updated to Python 2.7.13 and OpenSSL 1.0.2k | ||
+ | |||
+ | *Infrastructure: | ||
+ | **3 additional bootstrap nodes | ||
+ | **new server for building/testing | ||
+ | **transifex webhooks automate translation workflow | ||
+ | **integration with landscape.io for code quality checking | ||
+ | |||
+ | 0.6.1 | ||
+ | |||
+ | * Translation update and localisation fixes | ||
+ | * Minor bug fixes | ||
+ | * Minor UI improvements | ||
+ | * Namecoin integration fixed and improved | ||
+ | * SMTP server and client interface | ||
+ | * Tor hidden service support | ||
+ | * C PoW builds and runs on *BSD | ||
+ | * Windows binary: | ||
+ | ** fixed build | ||
+ | ** upgraded to Python 2.7.12 and OpenSSL 1.0.2h | ||
+ | ** 64bit binary available for download | ||
+ | ** self-built PyInstaller bootloader should trigger fewer antivirus false positives | ||
+ | * Mac OSX binary: | ||
+ | ** upgraded to Python 2.7.12 and OpenSSL 1.0.2h | ||
+ | |||
+ | 0.6.0 | ||
+ | |||
+ | * QT interface overhaul | ||
+ | * Opportunistic TLS support | ||
+ | * Mitigation of some deanonymisation attacks | ||
+ | * C (using OpenSSL) and OpenCL PoW modules | ||
+ | * Performance improvements (backend as well as QT GUI) | ||
+ | * UPnP support | ||
+ | * Improved bootstrapping over Tor | ||
+ | * Translation updates | ||
+ | * Lots of tiny bugfixes and some minor security improvements | ||
+ | * Integration of mailchuck.com email gateway | ||
+ | |||
+ | 0.4.4 | ||
+ | |||
+ | * Added ability to limit network transfer rate | ||
+ | * Updated to [[Protocol_specification_v3|Protocol Version 3]] | ||
+ | * Removed use of memoryview so that we can support python 2.7.3 | ||
+ | * Make use of l10n for localizations | ||
+ | |||
+ | 0.4.3 | ||
+ | |||
+ | * Support pyelliptic's updated HMAC algorithm. We'll remove support for the old method after an upgrade period. | ||
+ | * Improved version check | ||
+ | * Refactored decodeBase58 function | ||
+ | * Ignore duplicate messages | ||
+ | * Added bytes received/sent counts and rate on the network information tab | ||
+ | * Fix unicode handling in 'View HTML code as formatted text' | ||
+ | * Refactor handling of packet headers | ||
+ | * Use pointMult function instead of arithmetic.privtopub since it is faster | ||
+ | * Fixed issue where client wasn't waiting for a verack before continuing on with the conversation | ||
+ | * Fixed CPU hogging by implementing tab-based refresh improvements | ||
+ | * Added curses interface | ||
+ | * Added support for IPv6 | ||
+ | * Added a 'trustedpeer' option to keys.dat | ||
+ | * Limit maximum object size to 20 MB | ||
+ | * Support email-like > quote characters and reply-below-quote | ||
+ | * Added Japanese and Dutch language files; updated Norwegian and Russian languages files | ||
+ | |||
+ | 0.4.2 | ||
+ | |||
+ | * Added Norwegian, Chinese, and Arabic translations | ||
+ | * sock.sendall function isn't atomic. Let sendDataThread be the only thread which sends data. | ||
+ | * Moved API code to api.py | ||
+ | * Populate comboBoxSendFrom when replying | ||
+ | * Added option to show recent broadcasts when subscribing | ||
+ | * Fixed issue: If Windows username contained an international character, Bitmessage wouldn't start | ||
+ | * Added some code for FreeBSD compatibility | ||
+ | * Moved responsibility for processing network objects to the new ObjectProcessorThread | ||
+ | * Refactored main QT module | ||
+ | ** Moved popup menus initialization to separate methods | ||
+ | ** Simplified inbox loading | ||
+ | ** Moved magic strings to the model scope constants so they won't be created every time. | ||
+ | * Updated list of defaultKnownNodes | ||
+ | * Fixed issue: [Linux] When too many messages arrive too quickly, exception occurs: "Exceeded maximum number of notifications" | ||
+ | * Fixed issue: creating then deleting an Address in short time crashes class_singleWorker.py | ||
+ | * Refactored code which displays messages to improve code readability | ||
+ | * load "Sent To" label from subscriptions if available | ||
+ | * Removed code to add chans to our address book as it is no longer necessary | ||
+ | * Added identicons | ||
+ | * Modified addresses.decodeAddress so that API command decodeAddress works properly | ||
+ | * Added API commands createChan, joinChan, leaveChan, deleteAddress | ||
+ | * In pyelliptic, check the return value of RAND_bytes to make sure enough random data was generated | ||
+ | * Don't store messages in UI table (and thus in memory), pull from SQL inventory as needed | ||
+ | * Fix typos in API commands addSubscription and getInboxMessagesByAddress | ||
+ | * Add feature in settings menu to give up resending a message after a specified period of time | ||
+ | |||
+ | 0.4.1 | ||
+ | |||
+ | * Fixed whitelist bug | ||
+ | * Fixed chan bug | ||
+ | ** Added addressversion field to pubkeys table | ||
+ | ** Sending messages to a chan no longer uses anything in the pubkeys table | ||
+ | ** Sending messages to yourself is now fully supported | ||
+ | * Change _verifyAddress function to support v4 addresses | ||
+ | |||
+ | 0.4.0 | ||
+ | |||
+ | * Raised default demanded difficulty from 1 to 2 for new addresses | ||
+ | * Added v4 addresses: pubkeys are now encrypted and tagged in the inventory | ||
+ | * Use locks when accessing dictionary inventory | ||
+ | * Refactored the way inv and addr messages are shared | ||
+ | * Give user feedback when disk is full | ||
+ | * Added chan true/false to listAddresses results | ||
+ | * When replying using chan address, send to whole chan not just sender | ||
+ | * Refactored of the way PyBitmessage looks for interesting new objects in large inv messages from peers | ||
+ | * Show inventory lookup rate on Network Status tab | ||
+ | * Added SqlBulkExecute class so we can update inventory with only one commit | ||
+ | * Updated Russian translations | ||
+ | * Move duplicated SQL code into helper | ||
+ | * Allow specification of alternate settings dir via BITMESSAGE_HOME environment variable | ||
+ | * Removed use of gevent. Removed class_bgWorker.py | ||
+ | * Added Sip and PyQt to includes in build_osx.py | ||
+ | * Show number of each message type processed in the API command clientStatus | ||
+ | * Use fast PoW unless we're explicitly a frozen (binary) version of the code | ||
+ | * Enable user-set localization in settings | ||
+ | * Fix Archlinux package creation | ||
+ | * Fallback to language only localization when region doesn't match | ||
+ | * Fixed brew install instructions | ||
+ | * Added German translation | ||
+ | * Made inbox and sent messages table panels read-only | ||
+ | * Allow inbox and sent preview panels to resize | ||
+ | * Count RE: as a reply header, just like Re: so we don't chain Re: RE: | ||
+ | * Fix for traceback on OSX | ||
+ | * Added backend ability to understand shorter addresses | ||
+ | * Convert 'API Error' to raise APIError() | ||
+ | * Added option in settings to allow sending to a mobile device (app not yet done) | ||
+ | * Added ability to start daemon mode when using Bitmessage as a module | ||
+ | * Improved the way client detects locale | ||
+ | * Added API commands: getInboxMessageIds, getSentMessageIds, listAddressBookEntries, trashSentMessageByAckData, addAddressBookEntry, deleteAddressBookEntry, listAddresses2, listSubscriptions | ||
+ | * Set a maximum frequency for playing sounds | ||
+ | * Show Invalid Method error in same format as other API errors | ||
+ | * Update status of separate broadcasts separately even if the sent data is identical | ||
+ | * Added Namecoin integration | ||
+ | * Internally distinguish peers by IP and port | ||
+ | * Inbox message retrieval API functions now also returns read status | ||
+ | |||
+ | 0.3.5 | ||
+ | |||
+ | * Added right-click option to mark a message as unread | ||
+ | * Prompt user to connect at first startup | ||
+ | * Install into /usr/local by default | ||
+ | * Add a missing `rm -f` to the uninstall task. | ||
+ | * Use system text color for enabled addresses instead of black | ||
+ | * Added support for Chans | ||
+ | * Start storing msgid in sent table | ||
+ | * Optionally play sounds on connection/disconnection or when messages arrive | ||
+ | * Adding configuration option to listen for connections when using SOCKS | ||
+ | * Added packaging for multiple distros (Arch, Puppy, Slack, etc.) | ||
+ | * Added Russian translation | ||
+ | * Added search support in the UI | ||
+ | * Added 'make uninstall' | ||
+ | * To improve OSX support, use PKCS5_PBKDF2_HMAC_SHA1 if PKCS5_PBKDF2_HMAC is unavailable | ||
+ | * Added better warnings for OSX users who are using old versions of Python | ||
+ | * Repaired debian packaging | ||
+ | * Altered Makefile to avoid needing to chase changes | ||
+ | * Added logger module | ||
+ | * Added bgWorker class for background tasks | ||
+ | * Added use of gevent module | ||
+ | * On not-Windows: Fix insecure keyfile permissions | ||
+ | * Fix 100% CPU usage issue | ||
+ | |||
+ | 0.3.4 | ||
+ | |||
+ | * Linux: Store config files in $XDG_CONFIG_HOME | ||
+ | * Added a new global variable user option: doTimingAttackMitigation | ||
+ | * Moved a variety of classes and functions out of bitmessagemain.py and to their own modules | ||
+ | * New API command: getSentMessageByAckData | ||
+ | * Modified the getAllSentMessages and getSentMessageById commands to return ackData | ||
+ | * API commands to get messages now return actual encoding type | ||
+ | * Bugfix: Unicode chars in localtime prevented the gui from starting | ||
+ | * Added 'Save message as...' option in Inbox | ||
+ | * Added OS X Build scripts | ||
+ | * Added option to subscribe to an address in your address book | ||
+ | * Added getInboxMessageById API command | ||
+ | * Updated icons to have sRGB profile to prevent warnings | ||
+ | * Added French translation | ||
+ | * Switched addr, msg, broadcast, and getpubkey message types to 8 byte time. Last remaining type is pubkey. | ||
+ | * Added tooltips to show the full subject of messages | ||
+ | * Added Maximum Acceptable Difficulty fields in the settings | ||
+ | * Send out pubkey immediately after generating deterministic addresses rather than waiting for a request | ||
+ | |||
+ | 0.3.3 | ||
+ | * Remove inbox item from GUI when using API command trashMessage | ||
+ | * Add missing trailing semicolons to pybitmessage.desktop | ||
+ | * Ensure $(DESTDIR)/usr/bin exists | ||
+ | * Update Makefile to correct sandbox violations when built via Portage (Gentoo) | ||
+ | * Fix message authentication bug | ||
+ | |||
+ | 0.3.211 | ||
+ | |||
+ | * Removed multi-core proof of work as the multiprocessing module does not work well with pyinstaller's --onefile option. | ||
+ | |||
+ | 0.3.2 | ||
+ | |||
+ | * Bugfix: Remove remaining references to the old myapp.trayIcon | ||
+ | * Refactored message status-related code. API function getStatus now returns one of these strings: notfound, msgqueued, broadcastqueued, broadcastsent, doingpubkeypow, awaitingpubkey, doingmsgpow, msgsent, or ackreceived | ||
+ | * Moved proof of work to low-priority multi-threaded child processes | ||
+ | * Added menu option to delete all trashed messages | ||
+ | * Added inv flooding attack mitigation | ||
+ | * On Linux, when selecting Show Bitmessage, do not maximize automatically | ||
+ | * Store tray icons in bitmessage_icons_rc.py | ||
+ | |||
+ | 0.3.1 | ||
+ | |||
+ | * Added new API commands: getDeterministicAddress, addSubscription, deleteSubscription | ||
+ | * TCP Connection timeout for non-fully-established connections now 20 seconds | ||
+ | * Don't update the time we last communicated with a node unless the connection is fully established. This will allow us to forget about active but non-Bitmessage nodes which have made it into our knownNodes file. | ||
+ | * Prevent incoming connection flooding from crashing singleListener thread. Client will now only accept one connection per remote node IP | ||
+ | * Bugfix: Worker thread crashed when doing a POW to send out a v2 pubkey (bug introduced in 0.3.0) | ||
+ | * Wrap all sock.shutdown functions in error handlers | ||
+ | * Put all 'commit' commands within SQLLocks | ||
+ | * Bugfix: If address book label is blank, Bitmessage wouldn't show message (bug introduced in 0.3.0) | ||
+ | * Messaging menu item selects the oldest unread message | ||
+ | * Standardize on 'Quit' rather than 'Exit' | ||
+ | * [OSX] Try to seek homebrew installation of OpenSSL | ||
+ | * Prevent multiple instances of the application from running | ||
+ | * Show 'Connected' or 'Connection Lost' indicators | ||
+ | * Use only 9 half-open connections on Windows but 32 for everyone else | ||
+ | * Added appIndicator (a more functional tray icon) and Ubuntu Messaging Menu integration | ||
+ | * Changed Debian install directory and run script name based on Github issue #135 | ||
+ | |||
+ | 0.3.0 | ||
+ | |||
+ | * Added new API function: getStatus | ||
+ | * Added error-handling around all sock.sendall() functions in the receiveData thread so that if there is a problem sending data, the threads will close gracefully | ||
+ | * Abandoned and removed the connectionsCount data structure; use the connectedHostsList instead because it has proved to be more accurate than trying to maintain the connectionsCount | ||
+ | * Added daemon mode. All UI code moved into a module and many shared objects moved into shared.py | ||
+ | * Truncate display of very long messages to avoid freezing the UI | ||
+ | * Added encrypted broadcasts for v3 addresses or v2 addresses after 2013-05-28 10:00 UTC | ||
+ | * No longer self.sock.close() from within receiveDataThreads, let the sendDataThreads do it | ||
+ | * Swapped out the v2 announcements subscription address for a v3 announcements subscription address | ||
+ | * Vacuum the messages.dat file once a month: will greatly reduce the file size | ||
+ | * Added a settings table in message.dat | ||
+ | * Implemented v3 addresses: pubkey messages must now include two var_ints: nonce_trials_per_byte and extra_bytes, and also be signed. When sending a message to a v3 address, the sender must use these values in calculating its POW or else the message will not be accepted by the receiver. | ||
+ | * Display a privacy warning when selecting 'Send Broadcast from this address' | ||
+ | * Added gitignore file | ||
+ | * Added code in preparation for a switch from 32-bit time to 64-bit time. Nodes will now advertise themselves as using protocol version 2. | ||
+ | * Don't necessarily delete entries from the inventory after 2.5 days; leave pubkeys there for 28 days so that we don't process the same ones many times throughout a month. This was causing the 'pubkeys processed' indicator on the 'Network Status' tab to not accurately reflect the number of truly new addresses on the network. | ||
+ | * Use 32 threads for outgoing connections in order to connect quickly | ||
+ | * Fix typo when calling os.environ in the sys.platform=='darwin' case | ||
+ | * Allow the cancelling of a message which is in the process of being sent by trashing it then restarting Bitmessage | ||
+ | * Bug fix: can't delete address from address book | ||
+ | |||
+ | 0.2.8 | ||
+ | |||
+ | * Fixed Ubuntu & OS X issue: Bitmessage wouldn't receive any objects from peers after restart. | ||
+ | * Inventory flush to disk when exiting program now vastly faster. | ||
+ | * Fixed address generation bug (kept Bitmessage from restarting). | ||
+ | * Improve deserialization of messages before processing. | ||
+ | * Change to help Macs find OpenSSL the way Unix systems find it. | ||
+ | * Do not share or accept IPs which are in the private IP ranges. | ||
+ | * Added time-fuzzing to the embedded time in pubkey and getpubkey messages. | ||
+ | * Added a knownNodes lock to prevent an exception from sometimes occurring when saving the data-structure to disk. | ||
+ | * Show unread messages in bold and do not display new messages automatically; let user click it. | ||
+ | * Support selecting multiple items in the inbox, sent box, and address book. | ||
+ | * Use delete key to trash Inbox or Sent messages. | ||
+ | * Display richtext(HTML) messages from senders in address book or subscriptions (although not pseudo-mailing-lists; use new right-click option). | ||
+ | * Support enabling and disabling subscriptions. | ||
+ | * Trim spaces from the beginning and end of addresses when adding to address book, subscriptions, and blacklist. | ||
+ | * Improved the display of the time for foreign language users. | ||
+ | |||
+ | 0.2.7 | ||
+ | * Added API. See [[API_Reference|API Reference]]. | ||
+ | * Added error handling for the case where the client tries to send a message from an address for which the human has deleted the keys. | ||
+ | * Improved GUI messages when doing work (or pending work) for broadcast messages. | ||
+ | * Added error handling for the case where the proof of work takes no measurable time (caused a divide by zero error). | ||
+ | |||
+ | 0.2.6 | ||
+ | * New Feature: Pseudo-mailing-lists (available by right-clicking one of your addresses) | ||
+ | * New Feature: Portable Mode (available in the settings) | ||
+ | * Added missing context menu on the blacklist tab | ||
+ | |||
+ | 0.2.5 | ||
+ | * Bugfix-only release: Program improperly handles other nodes claiming to be in stream 0 (issue appeared when implementing IPv6). UI Freezes. | ||
+ | |||
0.2.4 | 0.2.4 | ||
* Prevent user from sending messages to themselves since the client cannot process its own getpubkey or msg messages | * Prevent user from sending messages to themselves since the client cannot process its own getpubkey or msg messages |
Latest revision as of 12:38, 1 March 2017
PyBitmessage Changelog
0.6.2
- Usability:
- many minor usability improvements, in particular helpful for beginners
- get rid of confusing log messages
- improved feedback when busy during shutdown
- UI feedback when problems with proxy
- UI feedback when local time is wrong
- UI feedback when C PoW module is not available
- folder loading performance improved
- translations updated
- chan join/create interface redesigned
- can select OpenCL vendor if multiple are available (previously it would have crashed)
- locale initialisation fixes
- contact support form and About dialog show the GIT head
- added setup.py (setuptools) for easier installation
- gentle warning if sending to a chan with a too low TTL
- message retransmit timing now works as the description
- Fixes:
- networking subsystem stability fixes
- multiprocessing python PoW fixed
- message parser fixes
- many smaller fixes
- OpenBSD listening socket fix (works IPv4-only mode instead of not at all)
- Backend:
- try to auto-build PoW module
- networking subsystem performance improvements
- refactoring of configuration interface, inventory, downloading and uploading tracking, known nodes and other minor parts
- refactoring to reduce circular imports and global variables
- support for OpenSSL 1.1.0 and LibreSSL
- some network parameters configurable, but mostly only through directly editing keys.dat
- network settings allow an optimised bootstrap provider mode
- Developers:
- extended encoding available for testing. Use it by holding Shift while clicking on Send
- extended encoding can be extended by adding new classes to the "messagetypes" directory
- directory structure reorganisation to get rid of obsolete code
- Linux:
- setup.py detects Ubuntu, Debian, Fedora, openSUSE, Gentoo and Guix
- FreeBSD/OpenBSD:
- separate Makefile for BSD make
- C PoW core count detection fixes for OpenBSD
- setup.py detects FreeBSD and OpenBSD
- Windows:
- improved error handling
- separate Makefile for Microsoft Visual C++
- pyinstaller spec file updated
- 64bit binary does not require MSVC Redistributable 2012 anymore and is mostly built with mingw instead of MSVC
- updated Python to 2.7.13 and OpenSSL to 1.0.2j/1.0.2k
- OSX:
- binary works with OpenCL
- updated to Python 2.7.13 and OpenSSL 1.0.2k
- Infrastructure:
- 3 additional bootstrap nodes
- new server for building/testing
- transifex webhooks automate translation workflow
- integration with landscape.io for code quality checking
0.6.1
- Translation update and localisation fixes
- Minor bug fixes
- Minor UI improvements
- Namecoin integration fixed and improved
- SMTP server and client interface
- Tor hidden service support
- C PoW builds and runs on *BSD
- Windows binary:
- fixed build
- upgraded to Python 2.7.12 and OpenSSL 1.0.2h
- 64bit binary available for download
- self-built PyInstaller bootloader should trigger fewer antivirus false positives
- Mac OSX binary:
- upgraded to Python 2.7.12 and OpenSSL 1.0.2h
0.6.0
- QT interface overhaul
- Opportunistic TLS support
- Mitigation of some deanonymisation attacks
- C (using OpenSSL) and OpenCL PoW modules
- Performance improvements (backend as well as QT GUI)
- UPnP support
- Improved bootstrapping over Tor
- Translation updates
- Lots of tiny bugfixes and some minor security improvements
- Integration of mailchuck.com email gateway
0.4.4
- Added ability to limit network transfer rate
- Updated to Protocol Version 3
- Removed use of memoryview so that we can support python 2.7.3
- Make use of l10n for localizations
0.4.3
- Support pyelliptic's updated HMAC algorithm. We'll remove support for the old method after an upgrade period.
- Improved version check
- Refactored decodeBase58 function
- Ignore duplicate messages
- Added bytes received/sent counts and rate on the network information tab
- Fix unicode handling in 'View HTML code as formatted text'
- Refactor handling of packet headers
- Use pointMult function instead of arithmetic.privtopub since it is faster
- Fixed issue where client wasn't waiting for a verack before continuing on with the conversation
- Fixed CPU hogging by implementing tab-based refresh improvements
- Added curses interface
- Added support for IPv6
- Added a 'trustedpeer' option to keys.dat
- Limit maximum object size to 20 MB
- Support email-like > quote characters and reply-below-quote
- Added Japanese and Dutch language files; updated Norwegian and Russian languages files
0.4.2
- Added Norwegian, Chinese, and Arabic translations
- sock.sendall function isn't atomic. Let sendDataThread be the only thread which sends data.
- Moved API code to api.py
- Populate comboBoxSendFrom when replying
- Added option to show recent broadcasts when subscribing
- Fixed issue: If Windows username contained an international character, Bitmessage wouldn't start
- Added some code for FreeBSD compatibility
- Moved responsibility for processing network objects to the new ObjectProcessorThread
- Refactored main QT module
- Moved popup menus initialization to separate methods
- Simplified inbox loading
- Moved magic strings to the model scope constants so they won't be created every time.
- Updated list of defaultKnownNodes
- Fixed issue: [Linux] When too many messages arrive too quickly, exception occurs: "Exceeded maximum number of notifications"
- Fixed issue: creating then deleting an Address in short time crashes class_singleWorker.py
- Refactored code which displays messages to improve code readability
- load "Sent To" label from subscriptions if available
- Removed code to add chans to our address book as it is no longer necessary
- Added identicons
- Modified addresses.decodeAddress so that API command decodeAddress works properly
- Added API commands createChan, joinChan, leaveChan, deleteAddress
- In pyelliptic, check the return value of RAND_bytes to make sure enough random data was generated
- Don't store messages in UI table (and thus in memory), pull from SQL inventory as needed
- Fix typos in API commands addSubscription and getInboxMessagesByAddress
- Add feature in settings menu to give up resending a message after a specified period of time
0.4.1
- Fixed whitelist bug
- Fixed chan bug
- Added addressversion field to pubkeys table
- Sending messages to a chan no longer uses anything in the pubkeys table
- Sending messages to yourself is now fully supported
- Change _verifyAddress function to support v4 addresses
0.4.0
- Raised default demanded difficulty from 1 to 2 for new addresses
- Added v4 addresses: pubkeys are now encrypted and tagged in the inventory
- Use locks when accessing dictionary inventory
- Refactored the way inv and addr messages are shared
- Give user feedback when disk is full
- Added chan true/false to listAddresses results
- When replying using chan address, send to whole chan not just sender
- Refactored of the way PyBitmessage looks for interesting new objects in large inv messages from peers
- Show inventory lookup rate on Network Status tab
- Added SqlBulkExecute class so we can update inventory with only one commit
- Updated Russian translations
- Move duplicated SQL code into helper
- Allow specification of alternate settings dir via BITMESSAGE_HOME environment variable
- Removed use of gevent. Removed class_bgWorker.py
- Added Sip and PyQt to includes in build_osx.py
- Show number of each message type processed in the API command clientStatus
- Use fast PoW unless we're explicitly a frozen (binary) version of the code
- Enable user-set localization in settings
- Fix Archlinux package creation
- Fallback to language only localization when region doesn't match
- Fixed brew install instructions
- Added German translation
- Made inbox and sent messages table panels read-only
- Allow inbox and sent preview panels to resize
- Count RE: as a reply header, just like Re: so we don't chain Re: RE:
- Fix for traceback on OSX
- Added backend ability to understand shorter addresses
- Convert 'API Error' to raise APIError()
- Added option in settings to allow sending to a mobile device (app not yet done)
- Added ability to start daemon mode when using Bitmessage as a module
- Improved the way client detects locale
- Added API commands: getInboxMessageIds, getSentMessageIds, listAddressBookEntries, trashSentMessageByAckData, addAddressBookEntry, deleteAddressBookEntry, listAddresses2, listSubscriptions
- Set a maximum frequency for playing sounds
- Show Invalid Method error in same format as other API errors
- Update status of separate broadcasts separately even if the sent data is identical
- Added Namecoin integration
- Internally distinguish peers by IP and port
- Inbox message retrieval API functions now also returns read status
0.3.5
- Added right-click option to mark a message as unread
- Prompt user to connect at first startup
- Install into /usr/local by default
- Add a missing `rm -f` to the uninstall task.
- Use system text color for enabled addresses instead of black
- Added support for Chans
- Start storing msgid in sent table
- Optionally play sounds on connection/disconnection or when messages arrive
- Adding configuration option to listen for connections when using SOCKS
- Added packaging for multiple distros (Arch, Puppy, Slack, etc.)
- Added Russian translation
- Added search support in the UI
- Added 'make uninstall'
- To improve OSX support, use PKCS5_PBKDF2_HMAC_SHA1 if PKCS5_PBKDF2_HMAC is unavailable
- Added better warnings for OSX users who are using old versions of Python
- Repaired debian packaging
- Altered Makefile to avoid needing to chase changes
- Added logger module
- Added bgWorker class for background tasks
- Added use of gevent module
- On not-Windows: Fix insecure keyfile permissions
- Fix 100% CPU usage issue
0.3.4
- Linux: Store config files in $XDG_CONFIG_HOME
- Added a new global variable user option: doTimingAttackMitigation
- Moved a variety of classes and functions out of bitmessagemain.py and to their own modules
- New API command: getSentMessageByAckData
- Modified the getAllSentMessages and getSentMessageById commands to return ackData
- API commands to get messages now return actual encoding type
- Bugfix: Unicode chars in localtime prevented the gui from starting
- Added 'Save message as...' option in Inbox
- Added OS X Build scripts
- Added option to subscribe to an address in your address book
- Added getInboxMessageById API command
- Updated icons to have sRGB profile to prevent warnings
- Added French translation
- Switched addr, msg, broadcast, and getpubkey message types to 8 byte time. Last remaining type is pubkey.
- Added tooltips to show the full subject of messages
- Added Maximum Acceptable Difficulty fields in the settings
- Send out pubkey immediately after generating deterministic addresses rather than waiting for a request
0.3.3
- Remove inbox item from GUI when using API command trashMessage
- Add missing trailing semicolons to pybitmessage.desktop
- Ensure $(DESTDIR)/usr/bin exists
- Update Makefile to correct sandbox violations when built via Portage (Gentoo)
- Fix message authentication bug
0.3.211
- Removed multi-core proof of work as the multiprocessing module does not work well with pyinstaller's --onefile option.
0.3.2
- Bugfix: Remove remaining references to the old myapp.trayIcon
- Refactored message status-related code. API function getStatus now returns one of these strings: notfound, msgqueued, broadcastqueued, broadcastsent, doingpubkeypow, awaitingpubkey, doingmsgpow, msgsent, or ackreceived
- Moved proof of work to low-priority multi-threaded child processes
- Added menu option to delete all trashed messages
- Added inv flooding attack mitigation
- On Linux, when selecting Show Bitmessage, do not maximize automatically
- Store tray icons in bitmessage_icons_rc.py
0.3.1
- Added new API commands: getDeterministicAddress, addSubscription, deleteSubscription
- TCP Connection timeout for non-fully-established connections now 20 seconds
- Don't update the time we last communicated with a node unless the connection is fully established. This will allow us to forget about active but non-Bitmessage nodes which have made it into our knownNodes file.
- Prevent incoming connection flooding from crashing singleListener thread. Client will now only accept one connection per remote node IP
- Bugfix: Worker thread crashed when doing a POW to send out a v2 pubkey (bug introduced in 0.3.0)
- Wrap all sock.shutdown functions in error handlers
- Put all 'commit' commands within SQLLocks
- Bugfix: If address book label is blank, Bitmessage wouldn't show message (bug introduced in 0.3.0)
- Messaging menu item selects the oldest unread message
- Standardize on 'Quit' rather than 'Exit'
- [OSX] Try to seek homebrew installation of OpenSSL
- Prevent multiple instances of the application from running
- Show 'Connected' or 'Connection Lost' indicators
- Use only 9 half-open connections on Windows but 32 for everyone else
- Added appIndicator (a more functional tray icon) and Ubuntu Messaging Menu integration
- Changed Debian install directory and run script name based on Github issue #135
0.3.0
- Added new API function: getStatus
- Added error-handling around all sock.sendall() functions in the receiveData thread so that if there is a problem sending data, the threads will close gracefully
- Abandoned and removed the connectionsCount data structure; use the connectedHostsList instead because it has proved to be more accurate than trying to maintain the connectionsCount
- Added daemon mode. All UI code moved into a module and many shared objects moved into shared.py
- Truncate display of very long messages to avoid freezing the UI
- Added encrypted broadcasts for v3 addresses or v2 addresses after 2013-05-28 10:00 UTC
- No longer self.sock.close() from within receiveDataThreads, let the sendDataThreads do it
- Swapped out the v2 announcements subscription address for a v3 announcements subscription address
- Vacuum the messages.dat file once a month: will greatly reduce the file size
- Added a settings table in message.dat
- Implemented v3 addresses: pubkey messages must now include two var_ints: nonce_trials_per_byte and extra_bytes, and also be signed. When sending a message to a v3 address, the sender must use these values in calculating its POW or else the message will not be accepted by the receiver.
- Display a privacy warning when selecting 'Send Broadcast from this address'
- Added gitignore file
- Added code in preparation for a switch from 32-bit time to 64-bit time. Nodes will now advertise themselves as using protocol version 2.
- Don't necessarily delete entries from the inventory after 2.5 days; leave pubkeys there for 28 days so that we don't process the same ones many times throughout a month. This was causing the 'pubkeys processed' indicator on the 'Network Status' tab to not accurately reflect the number of truly new addresses on the network.
- Use 32 threads for outgoing connections in order to connect quickly
- Fix typo when calling os.environ in the sys.platform=='darwin' case
- Allow the cancelling of a message which is in the process of being sent by trashing it then restarting Bitmessage
- Bug fix: can't delete address from address book
0.2.8
- Fixed Ubuntu & OS X issue: Bitmessage wouldn't receive any objects from peers after restart.
- Inventory flush to disk when exiting program now vastly faster.
- Fixed address generation bug (kept Bitmessage from restarting).
- Improve deserialization of messages before processing.
- Change to help Macs find OpenSSL the way Unix systems find it.
- Do not share or accept IPs which are in the private IP ranges.
- Added time-fuzzing to the embedded time in pubkey and getpubkey messages.
- Added a knownNodes lock to prevent an exception from sometimes occurring when saving the data-structure to disk.
- Show unread messages in bold and do not display new messages automatically; let user click it.
- Support selecting multiple items in the inbox, sent box, and address book.
- Use delete key to trash Inbox or Sent messages.
- Display richtext(HTML) messages from senders in address book or subscriptions (although not pseudo-mailing-lists; use new right-click option).
- Support enabling and disabling subscriptions.
- Trim spaces from the beginning and end of addresses when adding to address book, subscriptions, and blacklist.
- Improved the display of the time for foreign language users.
0.2.7
- Added API. See API Reference.
- Added error handling for the case where the client tries to send a message from an address for which the human has deleted the keys.
- Improved GUI messages when doing work (or pending work) for broadcast messages.
- Added error handling for the case where the proof of work takes no measurable time (caused a divide by zero error).
0.2.6
- New Feature: Pseudo-mailing-lists (available by right-clicking one of your addresses)
- New Feature: Portable Mode (available in the settings)
- Added missing context menu on the blacklist tab
0.2.5
- Bugfix-only release: Program improperly handles other nodes claiming to be in stream 0 (issue appeared when implementing IPv6). UI Freezes.
0.2.4
- Prevent user from sending messages to themselves since the client cannot process its own getpubkey or msg messages
- Do the pubkey POW and broadcast it directly after generating a new address
0.2.3
- Defined rules for nodes to follow for storing and relaying pubkeys. Nodes now store keys for 4 weeks then delete them. They also will not accept pubkeys older than 4 weeks; the owner will have to retransmit them if they are needed.
- Added 'fuzzing' to the time embedded in msg and broadcast messages.
- Added timing attack mitigation to the function that processes incoming pubkeys
- Added a new file: messages.dat reader.py which can be independently used to print information stored in the messages.dat file to the console.
- Users who run the software for the first time will now be subscribed by default to a Bitmessage address used to send announcements.
0.2.2
- Don't use DNS-based bootstrapping method if user is connecting via SOCKS; just skip it. Hopefully the nodes listed in defaultKnownNodes are still up.
- Implemented timing attack mitigation measure
0.2.1
- Added ability to send Sent items to the trash
- Keep track of which objects each peer is already aware and don't advertise objects that they already know about
0.2.0
- Major upgrade to ECC:
- Elliptic curve secp256k1 is used for Bitmessage's signing and asymetric encryption. Keys are interchangable between Bitmessage and Bitcoin.
- Keys stored in Wallet Import Format in the keys.dat file
- Deterministic addresses
- Addresses are now shorter: Bitmessage now supports 18 and 19 byte RIPE addresses where the missing 1 or 2 bytes are assumed to be zeros.
- Moved pubkey POW responsibility from the receiveData thread to the singleWorker thread
0.1.6
- Added DNS-based bootstrap method so that updating defaultKnownNodes doesn't require a code push.
0.1.5
- Client now checks whether a getpubkey message has the correct time before storing in inventory and also uses embeddedTime rather than system time (the way it is done for all other messages). This was a bug that didn't cause any ill-effect.
- Fix so that today's Bitmessage client will properly handle future versions of Bitmessage addresses
- Updated defaultKnownNodes
0.1.4
- Added support for SOCKS4a and SOCKS5 proxies
- Adjusted UI so that it looks appropriate on OS X
- Changed UI to accept Bitmessage addresses which lack a "BM-". This makes copying and pasting easier.
- Fixed OS X issue: if user minimized client to tray then restored, segmentation fault occured
- Added locks to prevent ill-effect if the client receives the same object from two different nodes at the exact same time
- Commented out code that prevents the client from accepting a second connection from the same IP since this prevents users from running two clients within the same local network. When the Bitmessage network grows, this code will be re-enabled.
0.1.3
- Updated defaultKnownNodes so people who download Bitmessage on a fresh machine can bootstrap
- Sort received-message-time by actual time rather than by time-interpreted-alphabetically
0.1.2
- Fixed line break display issue
- Updated defaultKnownNodes so people who download Bitmessage on a fresh machine can bootstrap
- Bug fix: If subject in received message contained international characters, reply button wouldn't work completely
0.1.1
- Fixed bug that prevented user from deleting a recently received message
- On the "Send" tab, select your address automatically if you have only one
- Rewrote the SQLite version check more liberally accept SQLite revision numbers
- Fixed "reply" functionality
- Removed PyObjc dependency for OSX
0.1.0
- Initial release