Fully functionally transported PyBitmessage on python 3
Some time ago a Kashikoibumi user used the "2to3" tool on the PyBitmessage code to finally update it to a newer version of Python language. In addition, he fixed along the way many problems which the conversion carried behind it. Unfortunately, subsequent updates were only small bug fixes until now it seems to have stopped updating (probably due to lack of will or time or skill as he writes himself). So I decided to sit down and help fix it to work fully and it seems to have worked out. Here I send a link for discussion in the Py3Bitmessage repository: https://github.com/kashikoibumi/PyBitmessage/issues/16
The issue with the code was failing tests, inadequate code quality and too many changes in one go. If I merge it, it will be even more difficult to maintain. I have recently enacted a plan to do this, but in a more sustainable way.
I understand. And you're right that a rapid transition from another version gives a number of problems. However, if there is a repository from Py3Bitmessage it would be nice if the program at least worked on the basic functionality and did not throw away errors immediately after the start. I'm sorry, I didn't hear about your plan. I'm glad you finally want to solve this problem, and with all due respect, You've done a good job so far and no one can demand anything from you. My activities only aim at hobby modifications and improvement of functionality. I'd love it if you could use them to fix your mistakes tomorrow. Besides the importance of transferring PyBitmessage to python3, I think there are other issues worth improving. First of all, it is to recalibrate the PoW to work more strongly against spammer attacks, which have, for example, occurred recently, mainly on the hans. Replace SHA512 for example Argon2. SHA is so easy today with any consumer graphics card that you can send hundreds of messages cheaply with maximum ttl and size. A while ago I worked on my implementation of bitmessage which creates a completely different network. There is a mechanism in place that determines the necessary work to be done based on ttl, message size, but also the performance of the processor itself on which the calculations are made. It does so by checking in random time the efficiency of the calculation unit and adjusting dynamically the basic POW from which the actual PoW is only counted. This causes someone who has a very strong processor in relation to someone who has a weaker one to proportionally perform more work for the same message size and ttl. This forces each processor not to do the same work but to be adequately loaded. It would minimize the spam. Of course, my implementation was based on a simple linear function scheme, but in the bitmessage protocol itself, you could create an algorithm for that. How about introducing an ephemeral key to raise security? It also proposes to fire all unnecessary functions which may be the point of attack such as API, upnp or support for namecoin. Or bring them back once everything's stable. Someone who knows programming well and looks at this project today will probably say, "Brother, throw everything away and write again."