Jump to navigation Jump to search
- Fix 100% CPU usage issue
- 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
- 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
- Removed multi-core proof of work as the multiprocessing module does not work well with pyinstaller's --onefile option.
- 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
- 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
- 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
- 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.
- 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).
- 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
- Bugfix-only release: Program improperly handles other nodes claiming to be in stream 0 (issue appeared when implementing IPv6). UI Freezes.
- 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
- 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.
- 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
- 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
- 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
- Added DNS-based bootstrap method so that updating defaultKnownNodes doesn't require a code push.
- 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
- 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.
- 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
- 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
- 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
- Initial release