An important step in our development process over the last few weeks was the release of Brass Golem Alpha 2 0.8. Our new version integrates those lessons derived from the feedback from testers in GUI, and now has an updated Python 3 code base. We are taking our next planned steps in building Golem. We have begun work on a number of other issues and here are a few of those issues we either consider dealt with, or significantly tackled.


One of the tasks to be completed and checked-off in recent days has been the eradication of jsonpickle from our codebase. You can see last week’s posting for more information about this. The inquisitive may notice jsonpickle is still an installation requirement but the only component that makes use of it is the legacy GUI. That will be removed as soon as the developer features are merged into our new, Electron-based one.


We have made some less visible, although important, enhancements to the CI. One of them concerns starting Golem to force geth to listen on a specific port. You can now use a “ — geth-port” flag to do it.

To speed up the development process, we have made some changes in PyInstaller by allowing users to specify the path where the final build is saved. That should enable us to improve buildbots. We have also added buildbots to macOS and Linux to our public repository. It is easier now to test the most recent dev-builds. We have sped up the libfreeimage installation process on the CI server. That will shorten the automated tests time.

Additionally, we are running Golem’s test suite against the released binary versions of HyperG. The factors that influenced this decision were:

  • Stability of Continuous Integration environments. Building from source could occasionally cause failures unrelated to the test suite.
  • Separation of concerns between the latest changes in HyperG and Golem’s test suite.
  • The released HyperG binaries were tested only internally.


The peer discovery phase is now optional in HyperG. Instead, Golem keeps track of peers interested in sharing a certain resource and provides that information to HyperG. Thanks to the more fine-grained control of connections we can signal failed download attempts earlier without relying on arbitrary timeout values.


We have made it possible for nodes to keep and display information about other nodes’ versions. This will help users during error diagnosis. Also, we made changes that put providers in much better position in terms of gains. Now, they will obtain the maximum price the requestors have set up, whereas previously they could only expect the minimum price they’ve set for themselves. It should lead to clarification of the payment process and make the payment market more intuitive.

Join us next week for further development news.