_("...") style (to also get automatic escaping)Platform: Win10, Python 3.7.1 64bit
Signing x1000:
Verification x1000:
@mkg20001
Android apk release based on it?
Could Kivy also support iOS and other mobile (BlackBerry, WebOS, Firefox OS, Tizen)?
@DaniellMesquita depends on how hard it is to get python3 running on android
https://kivy.org/doc/stable/faq.html#does-kivy-support-python-3-x
For iOS build, ZeroNet needs to support PY 2.7 for it
@DaniellMesquita That's.... not what that says.
Edit: It says Python 3 is now usable with Kivy (including for android because of python-for-android supporting python 3 - hence the word "also"), but the build tools for iOS require Python 2.
TL;DR: You don't need python 2 to run on iOS with python 3, you just need it for the build tools.
Please note that in python-bitcointx, the python package has just been renamed from 'bitcoin' to 'bitcointx' (https://github.com/Simplexum/python-bitcointx/issues/7). Also, use_libsecp256k1_for_signing() function will be gone after ,https://github.com/Simplexum/python-bitcointx/pull/14 gets merged, because signing with libsecp256k1 will be the default.
Hello everyone! Quick questions:
coincurve is not the fastest (it appears, correct me if I read it wrong!) and that should not be the case. Could you please show how that test is set up?Cons: It's harder and longer to compile for different platforms, No support for message encryption (required for ZeroMail). Can you please explain what you need for message encryption? Also, there are actually pre-compiled wheels for every major platform 馃檪 @ofek
Is that AES-256?
https://github.com/HelloZeroNet/ZeroNet/blob/master/plugins/CryptMessage/CryptMessage.py#L7
aes-256-cbc by default, but we need openssl anyway for encrypted connections, so it's ok to keep it as it is and use coincurve as optional speedup for the most critical part
@HelloZeroNet Ah makes sense, thanks! Could you please ping me on the PR that adds coincurve as an optional speedup? I'm always curious to see how it's used.
@ofek Sure, this is the code what we going to use: https://gist.github.com/HelloZeroNet/c82198335b430b51d86f9d6484fd91c2
I got it from a ZeroNet user (@MuxZeroNet) a few months ago. Please let me know if you have suggestions. (We only going to use it for verification as the signing is pretty rare operation)
https://github.com/HelloZeroNet/ZeroNet/blob/master/plugins/CryptMessage/CryptMessage.py#L7
aes-256-cbc by default, but we need openssl anyway for encrypted connections, so it's ok to keep it as it is and use coincurve as optional speedup for the most critical part
AES-256 is quantum resistant in medium-therm. But Bitcoin cryptography (that gives life to zites) isn't.
@HelloZeroNet For the key_pair function you should be able to just return secretkey.public_key, secretkey to avoid double curve computation. If you really, really want decoupled objects then keep the return as-is and for the public key use from_valid_secret to bypass bounds checking.
Please let me know when the PR arrives 馃檪
First Python3 version is ready for testing: https://github.com/HelloZeroNet/ZeroNet/tree/py3
What's left before release:
There was various compatibility problems with Python 3.5 (some of them was tricky to reproduce), but I was able to fix it and it should work now.
The sqlite that comes with Python 3.7 (on windows) seems significantly faster, so it's recommended to use that one.
I have set up automatic test for Python 3.5, 3.6, 3.7 compatibility: https://travis-ci.org/HelloZeroNet/ZeroNet
The last Windows XP compatible Python version is 3.4, so I will try to make it work as well
Ok, so PeerMessage now supports Python 3 Version of ZeroNet - in the py3 branch.
@HelloZeroNet Uploading big files doesn't seem to work.
If you upload a file to KxoNetwork (I just uploaded a plugin), I get this error:
[08:20:11] - UiWSGIHandler error: TypeError: 'NoneType' object is not subscriptable in UiServer.py line 41 > pywsgi.py line 924 > pywsgi.py line 908 > helper.py line 304 > Bigfile/BigfilePlugin.py line 101 > PeerHashfield.py line 56
Sounds like the hash is None.
If I upload a file to ZeroUp, I get this:
[08:34:44] - UiWSGIHandler error: UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 813: character maps to <undefined> in UiServer.py line 41 > pywsgi.py line 924 > pywsgi.py line 908 > helper.py line 304 > Bigfile/BigfilePlugin.py line 102 > OptionalManager/OptionalManagerPlugin.py line 72 > Bigfile/BigfilePlugin.py line 370 > Bigfile/BigfilePlugin.py line 458 > cp1251.py line 23
In case you need the files, here they are:
@imachug Thanks for reporting, working on it!
Should be fixed in Rev4048 https://github.com/HelloZeroNet/ZeroNet/commit/87abdb92e9236c794b9de22c91d5d3d32d83e12f
It's actually half-fixed, I get this error:
[07:47:18] - UiWSGIHandler error: AttributeError: 'bytes' object has no attribute 'encode' in UiServer.py line 41 > pywsgi.py line 924 > pywsgi.py line 908 > helper.py line 304 > Bigfile/BigfilePlugin.py line 72
However, the file is uploaded correctly.
@imachug try with PR #1982
@HelloZeroNet I'm getting this error when I startup ZeroNet. I have the Bootstrap plugin enabled. I'm not sure if you've finished making this plugin work with py3 (I didn't see it in TODO list, I don't think):
[23:00:25] PluginManager Plugin Bootstrapper load error: OperationalError: cannot VACUUM from within a transaction in PluginManager.py line 56 > Bootstrapper/__init__.py line 1 > Bootstrapper/BootstrapperPlugin.py line 11 > Bootstrapper/BootstrapperDb.py line 17 > Bootstrapper/BootstrapperDb.py line 36 > Bootstrapper/BootstrapperDb.py line 45 > Db.py line 106 > DbCursor.py line 101
I think I've seen an issue about Bootstrapper but I can't find it now.
@HelloZeroNet Shouldn't this be closed as ZeroNet now supports Python 3?
Also, can you push some changes to master branch to alert all users which are still using Python 2 that it will be unsupported in 2020 and with details how to update to Python 3 version?
@HelloZeroNet Can we close this now?
Most helpful comment
First Python3 version is ready for testing: https://github.com/HelloZeroNet/ZeroNet/tree/py3
What's left before release: