From Bitmessage Wiki
Revision as of 16:25, 9 April 2013 by Atheros (talk | contribs)
Jump to navigation Jump to search

PyBitmessage Changelog


  • 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 (a 'best practice').
  • 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.
  • 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).
  • 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 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