Frequent users of Golem may have noted a minor problem with our app. Once you’ve exited, all the tasks disappear. They simply vanish.Working, coding, discussing.
As you have probably figured out, this issue needs to be resolved before our Brass launch. We have already implemented a task persistence system. Unfortunately, simply enabling has not been enough.
I had to rethink the directory structure for serializing the state of the tasks, since I encountered some conflicts here. As far as I see, task persistence works. But it still requires additional tests and reviews to be sure that it works in every case — says Marcin Mielniczuk, our software developer.
Moving forward to meet newer OpenSSL
Do you know about OpenSSL? It is the most common library for cryptographic primitives. First developed back in 1998, almost everything crypto uses it as its backend. And so do the Python cryptographical modules.
Unfortunately, the latest OpenSSL update, from 1.0 to 1.1 broke the API compatibility. This means that all libraries and programs taking advantage of the library cannot work with the new version without code modification. One of the affected libraries was a Python module called pyelliptic.
But, you might exclaim, Golem doesn’t use pyelliptic anywhere in it’s code. And you’d be right, we don’t. But pyelliptic is a transitive dependency, as the programmers call it. In other words, a dependency of a dependency.
Since deciding to migrate to pydevp2p, which does depend on pyelliptic, there were two possible solutions for us to choose from — either fix pyelliptic or modify pydevp2p to use a different library, in this case python-cryptography.
We decided to go with the second approach. A pull request to pydevp2p is awaiting the upstream developers’ review and hopefully it will be merged soon. As one of our developers, Wojciech Dubiel, describes the issue: