Releases: mailchuck/PyBitmessage
Happy Easter
Since there hasn't been a new release for a while, I am making a new one. Since there isn't much work left to do before the 0.6.0 milestone, this will likely be the last 0.5.x release. If you want to make sure that 0.6 works smoothly, please try out this release and report back issues that you're having. Also, I would appreciate if people helped with the translations, I set it up on an online service Transifex so that you can do that very easily from your browser:
https://www.transifex.com/bitmessage-project/pybitmessage/
This release includes bugfixes, security improvements and some refactoring (thanks to @mirrorwish). In particular due to the security improvements I recommend that 0.4.4 users update too, as some denonymisation attacks have been addressed.
This is the list of changes:
- newly arrived messages were sometimes missing or were not displayed correctly
- IPv6 thread names can be correctly parsed by some logging tools
- private IP range checks improved
- lock file is cleaned up on exit
- blacklist/whitelist labels can now be edited
- don't unnecessarily send ACKs (this could have been misused for deanonymisation attacks)
- don't allow getdata spamming (mitigates deanonymisation attacks)
- search has been improved, now it can search without having to press return, and applies to newly selected folders and newly arrived messages
- email gateway status query and settings change can be done from a menu
- email gateway registration rejection messages now popup a request for changing the email address
- always try all decryption keys (mitigates timing attacks)
- translation system changes, fixes and updates to some translations
- nodes with port 0 are rejected
- HTML parser has security and rendering fixes
- links for http(s) and bitcoin URIs allow an external handler in text mode also (subject to manual confirmation)
- email links are handled internally (by clicking an email link, it will start composing a message to that address)
- close to tray is now available
- simple keybindings for quick navigation (N)ext, (P)revious, (R)eply, (C)ompose, (F)ind.
- copying unicode to clipboard fixed
- "Sent" folder in chans now displays both messages you sent to the channel as well as messages you sent from that channel address
- multiple unicode fixes
- "All identities" now has a "sent" and "trash" folder too
- improvements in Tor support (reduced number of parallel connections, and PyBitmessage can now connect to hidden service nodes, but still cannot fully host a hidden service itself)
- UPnP fixes
- some UI refactoring (thanks @mirrorwish)
- build scripts for OSX and Windows updated (I have been using them just haven't published the updates until now)
Update: Windows binary was removed due to antivirus false positives
Smoother experience.
This release has an overall smoother experience. Tons of bug fixes and things that have been cleaned up.
UPDATE: The windows binary that was originally part of the release didn't contain the correct version number, so an updated binary was reuploaded, including the signature. There is no other change compared to the binary that was originally part of the release.
Fixes:
- Message subjects can now be copied to clipboard again and work correctly when replying to gatewayed messages
- Portable mode should now work correctly on OSX
- Windows/OSX binaries have all the system elements (like Ok buttons) correctly localised.
- external UPnP port is now remembered across restarts
- Improved unicode handling, including invalid characters
- Search text will remain after searching is finished
- Minor spelling fixes (thanks to itsexe)
- Daemon mode fix when Qt is not available. Running PyBitmessage on headless machines now works again without problems.
- Improved search method for OpenSSL libraries. For 0.5.6, some Windows users were unable to launch Bitmessage because they had an incompatible OpenSSL library somewhere on their system. This won't be a problem anymore.
- PyBitmessage shuts down correctly if you quit immediately after launching it
- Message composing will not allow rich text anymore (it just screwed up pasting, and it was ignored once you sent the message anyway)
- Sent folder shows new sent messages correctly
- Consecutive spaces in message content displayed correctly
- Message quoting fixed for messages containing HTML tags
- Messages from subscriptions have the correct colour
- Addressbook editing now changes existing entries in the message list
- Labels of subscriptions and chans can now be edited also through the addressbook and update the rest of the interface automatically
- Enabling/disabling addresses updates the addressbook automatically
- Adding new entries to blacklist didn't update the list immediately
- Number of unread messages displayed more correctly
- The Windows binary now really uses OpenSSL 1.0.2e. The previous release was announced as using OpenSSL 1.0.2e but didn't, and it also sometimes loaded a different OpenSSL version from the system path.
New features and enhancements:
- Message contents when viewing and composing can be zoomed (Ctrl + Mouse wheel, like in a browser)
- When replying, the cursor is positioned inside the message body
- Contact support form includes python and OpenSSL version
- Messages are downloaded faster from the network peers
Happy Christmas
Fixes:
- portable mode on Windows now detects correctly where the binary is located. On OSX it has been improved but still not fully correct
- infinite maximum acceptable difficulty was replaced with a huge but realistic setting
- when running from python, button names and such are correctly localised
- starting a new instance now pops up the window of the old instance (does not always work on linux though)
- large messages load contents on demand as you scroll, do not freeze the interface anymore
- large folders load about 6 times faster
- bundled Python (for Windows/OSX executables) upgraded to 2.7.11
- bundled OpenSSL (for
Windows/OSX executables) upgraded to 1.0.2e. This version fixed some security bugs. I don't think that any of them affect PyBitmessage but an upgrade won't harm - and some smaller fixes
New features and enhancements
- addresses and message subjects can be copied to clipboard
- when replying to a channel message, you can choose to reply to channel or sender
- HTML is automatically detected and such message can be switched to and from HTML mode by a single click
- links in HTML can be opened, but it shows a warning (links can deanonymise you or result in you downloading malicious software)
- hidden option that can prevent addresses from sending ACKs (not fully smooth yet)
- users can contact support (me) directly from the interface (Help -> Contact support). It will fill out basic info about the system, like PyBitmessage version, platform, etc, so that I don't have to do guesswork.
- Windows executable is packed with UPX and has smaller size
- Windows executable is tested and built on Windows XP and should run on all more recent Windows versions too
- OSX executable is tested and built on OSX 10.7.5 Lion, and should run on all more recent OSX versions too
More work was done on non-programming side, like creating VMs, etc.
Minor updates
There are some bugfixes and parts of the code have been cleaned up.
OpenCL support has been improved, it works on AMD cards now as well. The PoW system will now also verify that the OpenCL works correctly and cleanly switch to a different PoW method if that's not the case. It will also notify you in the status bar that there's something wrong with OpenCL and you should contact the developers if you want it fixed. The OpenCL setting is now available in the settings menu, under "Max acceptable difficulty". However, the Windows and OSX binaries are not compatible with this yet. If the checkbox is grey, it means that OpenCL can't be initialised, for example you don't have working drivers installed.
The "Messages" tab now contains a new item at the top, "All accounts", which has an "inbox" folder (which works like the old UI's inbox folder worked), and a folder "new", which only contains unread messages. This may improve usability for people who have a lot of accounts and joined a lot of channels.
Tor bootstrapping wasn't working very well, because the bootstrapping nodes weren't Tor aware, and they think they're overloaded from the Tor exit nodes. This caused people who use Tor unable to connect to the Bitmessage network right after installing PyBitmessage. They had to get a list of Bitmessage node IP addresses from elsewhere manually, add them into their PyBitmessage configuration and only then they would be able to connect. 0.5.5 allows PyBitmessage to use the DNS bootstrap through Tor using Tor's RESOLVE SOCKS5 extension. However, this may only be a temporary solution, because the nodes in the DNS bootstrap aren't Tor-aware either. Therefore, there is now a dedicated Bitmessage node running as a Tor hidden service, which has been modified and optimised for Tor bootstrapping. 0.5.5 on Tor will automatically use this hidden service PyBitmessage to bootstrap in addition to the other bootstrapping mechanisms. The node recognises when it's being used for Tor bootstrapping, it will send the list of addresses first and will not try to sync the messages, and it will close the connection after 2 minutes to prevent overloading. Tor users should now be able to connect to Bitmessage network very quickly, comparably to non-Tor users (in my tests often even faster).
There could be minor issues when you quit PyBitmessage quickly after launching it. If you experience this, you need to kill the process (Task Manager, Force Quit, kill, or equivalent). If you want to avoid this, just keep it running for a minute before you quit. I hope to resolve this issue quickly.
This release is dedicated to my grandma, who passed away recently.
UPnP and fixes
This release finally features UPnP support. It is disabled by default, you can turn it on in the Network Settings. There is no need to restart after enabling/disabling UPnP. On Windows, it does not work reliably for some reason yet, but it works smoothly on Linux and OSX.
There are also plenty of bugfixes, most of them related to the UI.
There is a TLS fix for python versions older than 2.7.9. It was broken before, now it works for outgoing connections. For incoming connections TLS, you need python version 2.7.9 or later at the moment, otherwise incoming connections won't use TLS even if the other side supports it.
The logging subsystem has been improved and is now better utilised throughout PyBitmessage, and can be configured through a config file, "logging.dat", which you can put into the same directory as "keys.dat". The file format is described in python's logging config documentation: https://docs.python.org/2/library/logging.config.html#logging.config.fileConfig . If the file exists, the default logger in PyBitmessage (console / log file) will be disabled. This should help developers debugging PyBitmessage.
There have been some minor improvements in PyBitmessage shutdown procedure, it is a little bit cleaner.
UPDATE
People have been complaing that the Windows binary is not working. I rebuilt Bitmessage on Windows 2008, and the bitmsghash library with MinGW, both 32bit. This has the benefit that the Windows executable works with older Windows versions, but the bitmsghash performance is slightly worse. I hope that in the future I can provide both 32bit and 64bit Windows executables. Let me know how it works out for you. You can contact me at BM-2cX62WCeFcUwzXWqxTBfaAzNy4j1y8yZVm
Security improvements and lots of fixes
The major change is that PyBitmessage now supports TLS encryption among compatible nodes. This improves security. Another security improvement is that the SQLite database now zeroes deleted blocks.
The bundled executables (Windows and OSX) now include a working C implementation of PoW, which should make sending messages more efficient. The executables now also include translations, so if you use PyBitmessage with these executables, you'll be able to change language.
You can also benefit from several bugfixes of the user interface, and other small updates, like the ability to blacklist senders directly from the message or to see the sync status in the network tab (it shows how many objects are left to be synced).
v0.5.2
This release allows more window elements to be resized, and it saves the sizes. No more "received" stretching across half the screen.
There is also a C PoW library for improved PoW performance available (originally written by Robert White and updated by Grant Olson), but I was unable to find out how to bundle it with the Window and OSX executables. For the time being, if you want to use it, you probably have to run PyBitmessage from python manually. The library compiles on Windows, OSX and Linux.
Libraries for Windows are attached. Unfortunately, I'm not sure where you need to put them when using the executable. When running python from command line, put them into the bitmsghash directory, which already should exist locally.
Building them on OSX and linux is easy:
cd PyBitmessage/src/bitmsghash
make
PyBitmessage will then automatically load them from this directory when needed.
Tons of tiny bugfixes
This release contains many small bugfixes. Plenty of things which didn't work correctly or at all before now work. For a full list, check the description in the commits: https://github.com/mailchuck/PyBitmessage/commits/v0.5.1
Bugfixes, new version notifications and OSX release
This release contain the following changes since 0.4.5.2:
- many bugfixes and minor UI improvements. For a full list, you can look at the commit log: https://github.com/mailchuck/PyBitmessage/commits/master
- PyBitmessage will now notify you if it notices a node with a newer version. With this, you won't have to check yourself if a new version is available. Currently it will not do anything, but after 0.5.1 is released and you run 0.5.0, you will be notified if you connect to a node with 0.5.1 (or a 0.5.1 node connects to you). It only notifies once and then will keep quiet, until you restart PyBitmessage.
- PyBitmessage now again has OS X (Apple) releases. I bought an Apple just so that I can test and build for OSX. You can still run it directly by installing python yourself. My build is a done on OS X 10.11 El Capitan, let me know if it does not work on your system.
In the background, a lot of work has been done on organising the product development lifecycle. I joined the official PyBitmessage project: https://bitmessage.org/forum/index.php/topic,4812.0.html
The plan: https://bitmessage.org/forum/index.php/topic,4813.0.html is that the changes from my 0.5.x of my fork will slowly become part of the official PyBitmessage 0.6, after which there won't be separate releases anymore. This way you won't be confused about which version to run, you will have a choice between a stable and unstable release of official PyBitmessage. I expect 0.6 to become available by the end of this year (2015).
Channels, subscriptions, and resizable messages
This release, apart from minor fixes, has channels and subscriptions working in the new interface. There are still some minor bugs, and subscription folders/addresses do not show the number of new messages.
The "Messages" tab now is resizable (folder list vs the right side and message list vs the message contents.