Commit graph

10853 commits

Author SHA1 Message Date
Axel Gembe
0d1a473bb0
AppImage: Disable pip warnings about script install locations
It warns about scripts being installed in a location that is not on the
path, but that is inconsequential as they are not used.

-----

taken from Electron-Cash/Electron-Cash@9a29017c5d
2019-07-04 22:31:56 +02:00
SomberNight
c9006032d9
qt network dialog: let user edit server host/port in peace
incoming network updates could keep changing the text fields while
user is editing them
2019-07-04 21:46:11 +02:00
SomberNight
1518c7d133
build macOS README: mention how Qt affects min supported macOS version 2019-07-04 20:53:24 +02:00
SomberNight
93d68a4361
exchange_rate: fix #5487 2019-07-04 19:55:03 +02:00
SomberNight
650225e238
crash reporter UX
see #5483
2019-07-04 19:13:12 +02:00
SomberNight
28ca561bba
added trigger_crash method for testing crash reporter
invoke via console as:
electrum.base_crash_reporter.trigger_crash()
2019-07-04 18:06:21 +02:00
SomberNight
94b721baa4
wallet: fix type error in _bump_fee_through_decreasing_outputs
fixes #5483
2019-07-04 17:23:34 +02:00
SomberNight
194bf84418
build readme nits
sudo is needed to rm FRESH_CLONE as docker is running as sudo.
the proper fix would be to have docker not run as sudo...
2019-07-03 21:09:11 +02:00
SomberNight
5ed6a68d8c
update make_locale doc references, and small nits 2019-07-03 17:42:40 +02:00
SomberNight
f1516d60ec
mac build: fix locale in binaries 2019-07-03 17:37:02 +02:00
SomberNight
ec56a4612c
make_tgz: build locale from deterministic submodule 2019-07-03 17:36:29 +02:00
ThomasV
7b7397a8c7 chmod push_locale 2019-07-03 16:20:40 +02:00
ThomasV
5db21134aa separate push and pull locale 2019-07-03 16:19:26 +02:00
ThomasV
aa00fa2a5c update submodule 2019-07-03 16:01:10 +02:00
SomberNight
034c1e0828
prepare release 3.3.7 2019-07-03 15:47:05 +02:00
SomberNight
e431a07258
fix prev: conditional import / type hint failure 2019-07-03 13:56:11 +02:00
SomberNight
d293b2e038
wallet: follow-up prev 2019-07-03 13:40:42 +02:00
ThomasV
37e7add776 Do not pass storage to address_synchronizer 2019-07-03 10:46:30 +02:00
SomberNight
fb76fcc886
trezor: use only Bridge when available
fixes #5420
2019-07-02 21:21:39 +02:00
SomberNight
53893be4c9
crash reporter: in Qt subclass, do network request using WaitingDialog
so it does not block the GUI
2019-07-02 19:27:36 +02:00
SomberNight
1d0f67996e
build-wine: build our own pyinstaller bootloader
This seems to reduce anti-virus false positives.

based on:
Electron-Cash/Electron-Cash@1ac12e4111
Electron-Cash/Electron-Cash@9726498e95
Electron-Cash/Electron-Cash@40b1139d67
2019-07-01 22:22:25 +02:00
SomberNight
423d44bcaf
build-wine: some clean-up. cache downloads. better status messages 2019-07-01 20:18:30 +02:00
SomberNight
6455f515f0
build-wine: don't use gpg keyservers
based on Electron-Cash/Electron-Cash@a582be04d3
2019-07-01 18:01:14 +02:00
SomberNight
7c5247081b
change electrum.png to square (by padding)
ran "appimagelint" and apparently icon file needs to be a square
(could have just created another copy, but I guess a square icon
might make sense in other cases too)
2019-07-01 15:00:21 +02:00
SomberNight
4c63eca896
wallet.bump_fee: loosen sanity check a tiny bit 2019-06-29 16:22:37 +02:00
SomberNight
4f51308eab
coinchooser: clarify docs for make_tx 2019-06-29 16:21:07 +02:00
SomberNight
72d06038a7
synchronizer: fix race in _on_address_status
Triggering needs two consecutive scripthash status changes
in very quick succession. Client gets notification from server,
but then response to "blockchain.scripthash.get_history" will already contain
the changed-again history that has a different status.

20190627T101547.902638Z |     INFO | synchronizer.[default_wallet] | receiving history mwXtx49BCGAiy4tU1r7MBX5VVLWSdtasCL 1
20190627T101547.903262Z |     INFO | synchronizer.[default_wallet] | error: status mismatch: mwXtx49BCGAiy4tU1r7MBX5VVLWSdtasCL
2019-06-29 06:03:14 +02:00
SomberNight
37809bed74
qt high dpi: fix some text fields
There are probably other DPI related issues though.

closes #5471
closes #4597
closes #1927
2019-06-29 05:27:28 +02:00
SomberNight
e7304ce23e
TorDetector: minor clean-up 2019-06-29 04:03:29 +02:00
nachunjae
8a4e307b78 Update block explorer URL for btc.com (#5438)
* update block explorer URL for btc.com
2019-06-29 03:54:53 +02:00
SomberNight
f405c3fbdd
ledger: (trivial) rm some remnants of hw1 setup 2019-06-29 02:28:00 +02:00
SomberNight
935ab9a12f
interface: check if future already done in handle_disconnect
future could get cancelled in network.py in which case set_result raised
2019-06-28 21:13:33 +02:00
SomberNight
c6a54f05f5
wallet: some performance optimisations for get_receiving_addresses
jsondb takes a copy of the whole self.receiving_addresses
good for avoiding race conditions but horrible for performance...
this significantly speeds up at least
- synchronize_sequence, and
- is_beyond_limit (used by Qt AddressList)
2019-06-28 20:20:24 +02:00
SomberNight
a2bffb9137
network: harden against eclipse attacks 2019-06-27 19:10:25 +02:00
SomberNight
baa0293620
android build: persist debug keystore
so that we can upgrade debug installations on the phone and keep the datadir
2019-06-27 07:08:03 +02:00
SomberNight
0fafd8c0a7
fix #4777 again... 2019-06-27 05:00:16 +02:00
SomberNight
7bf6786bf5
build: note whether binary is reproducible in each case 2019-06-26 04:18:24 +02:00
SomberNight
4fc43da344
interface.debug will now also print errors 2019-06-26 01:16:34 +02:00
ThomasV
62e6ca50e1 do not log client-side RPC executions 2019-06-25 15:26:24 +02:00
SomberNight
570c0aeca3
build: make NSIS windows binary deterministic by changing the .ico file
see bitcoin/bitcoin@217208a36d

-----

A lot of time was wasted on this... over the years actually...

Some notes and rant here, for future reference.

During the initial effort to try to make binaries reproducible,
out of the three windows binaries being distributed (standalone, portable, setup),
only the first two were successfully made deterministic.
Later, we started to use Docker-based builds. At that point ThomasV and I
could reproducibly build the same setup/nsis exe but Travis kept building a different one.

Recently I have noticed that if I do two subsequent builds of the setup exe on
the same machine, adding a new file in contrib/build-wine/ between the builds,
then I get different binaries. Playing around with this a bit, it seems:
- other files that are in the same folder as contrib/build-wine/electrum.nsi affect the binary
- only files that are in exactly the same folder matter (not recursively)
- only filenames matter (not permission, owner, timestamps, or file contents)
To see the difference in the binaries, use vbindiff, and disable the compression done
by nsis (SetCompress off).
There is a ~48 byte diff near the very beginning of the "Uninstaller" section.
I am only guessing it is the uninstaller section based on the sizes of the sections
printed by nsis during the build.
I have downloaded the binary built by Travis, and the diff is consistent with this
(i.e. it's the same kind of diff that manifests if I change the filename of one of
the supposedly unrelated files).
Commenting out the "WriteUninstaller" line in .nsi fixes the issue. i.e. if no
uninstaller is created then the binary becomes deterministic.
Commenting out the "!define MUI_ICON" line in .nsi also fixes the issue.
At this point I remembered the above referenced commit by bluematt; which I had
thought we had already followed up on...
Replacing the .ico file fixes the issue.
Note that it's not actually clear what the exact requirements for the .ico file are.
Removing any of the layers in the image seems to introduce non-determinicity.
The new .ico file has layers with resolutions and properties the bitcoin.ico file has.

I guess NSIS must have strict requirements for the icon size, and if a given size icon is missing
it might be creating it itself?? And during the downscaling it uses a non-deterministic
algorithm that initialises some RNG from the directory listing (bauerj's guess somewhat adapted :D).
Just crazy.
2019-06-24 21:51:47 +02:00
SomberNight
9f28f8bcc6
Appimage: follow-up b69249f6c3
libsecp256k1.a needs to be deleted as it's not reproducible...
2019-06-23 04:17:46 +02:00
SomberNight
266484e0fd
Appimage: nits. use "fail"
somewhat based on same script in Electron-Cash/Electron-Cash
2019-06-23 04:13:28 +02:00
Axel Gembe
bb59a1298a
AppImage: Patch Python sysconfigdata
When building in docker on macOS, python builds with .exe extension
because the case insensitive file system of macOS leaks into docker.
This causes the build to result in a different output on macOS compared
to Linux. We simply patch sysconfigdata to remove the extension.

Some more info: https://bugs.python.org/issue27631
2019-06-23 04:13:23 +02:00
SomberNight
212ed8b18b
qt: set WWLabel text to be mouse-selectable by default
this lets user to copy-paste text in e.g. many wizard dialogs
2019-06-23 03:10:09 +02:00
SomberNight
31ba440d1c
build-wine: print some text before "pip install" 2019-06-23 03:09:05 +02:00
SomberNight
ec496a8222
requirements-hw: rm Cython
not actually needed
based on Electron-Cash/Electron-Cash@70de1a2b53
2019-06-23 03:06:36 +02:00
Axel Gembe
b69249f6c3
AppImage: Remove unused binaries
There are a lot of dupliacted files, testing files and unused libraries
present in the AppImage. Removing these reduces the AppImage size
significantly.

-----

taken from Electron-Cash/Electron-Cash@cff5fb1289
2019-06-23 02:56:33 +02:00
Axel Gembe
501fd8f9e5
AppImage: Improve reproducible Python build reliability on Linux
There was a problem where Python would not properly include the faketime
timestamp sometimes. This patch replaces faketime with a patch that is
used by Ubuntu for reproducible builds by exporting BUILD_DATE and
BUILD_TIME with the desired values.

-----

taken from Electron-Cash/Electron-Cash@9532508a3f
2019-06-23 02:47:16 +02:00
Axel Gembe
ae714772c3
AppImage: Make build reproducible
We build our own mksquashfs from squashfskit which supports generating
reproducible squashfs images. We use a small wrapper script to remove
the -mkfs-fixed-time which appimagekit passes but squashfskits
mksquashfs does not support.

-----

taken from Electron-Cash/Electron-Cash@dd1f106f4f
see AppImage/AppImageKit#929
2019-06-23 02:40:29 +02:00
SomberNight
fd5d1dab4f
coinchooser: clear up what "fee_estimator" expects 2019-06-20 22:46:22 +02:00