Posts Posts + Replies
bitfeed
electrumsv
1 year ago
ElectrumSV 1.3.13 has been released. This reenables scaling testnet access, fixes a longstanding bug with the in memory transaction cache and a few other things. Release articles now hosted on official web site and not my personal Medium account. -- rt12 https://electrumsv.io/articles/2021/electrumsv-1_3_13.html
electrumsv
1 year ago
I finally worked out where my moneybutton login credentials were located so I could login on my newer laptop. Release articles for ElectrumSV will be posted on https://electrumsv.io from now on, instead of Medium. But it makes sense to announce them here and use it as a comment system. -- rt12
electrumsv
2 years ago
Do you use watch only wallet support in ElectrumSV? If so, how do you make use of it? As wallet usage advances, we will no longer be able to guarantee that a watch only wallet has correct state. The one exception would be where an online multisig watch only wallet is used for all transaction creation for the offline cosigners. -- rt12
electrumsv
2 years ago
The Python 3.9, typing and mypy mess
ElectrumSV where possible uses the typing annotations that are provided through the typing module. This means that when we have a variable that is a list of integers we declare it as follows:
electrumsv
2 years ago
Importing a transaction.
electrumsv
2 years ago
What are test driven development best practices?
ElectrumSV has a lot of tests. They do a lot of invaluable things like run older wallet formats through the migration process. When changes are made that break wallet upgrades and a myriad of other things, we can detect them.
electrumsv
2 years ago
Derivation paths as a database column
If I wanted to select the oldest unused key, or even a sequence of unused keys and order them from oldest to newest, I need a database column that exposes it. This requires two pieces of information, how to serialise a sortable BIP32 derivation path,
electrumsv
2 years ago
My current task for ElectrumSV is refactoring how we use the database, to hand off as much work as possible to the database from the higher level wallet code. Today's focus is on how we store key usage. -- rt12
electrumsv
2 years ago
Transaction values in the database
ElectrumSV creates an SQLite database to store a wallet and it's related information. One useful piece of information we ask the database for, is the value of a transaction. This might be defined as the sum of the received coins within the transactio
electrumsv
2 years ago
Discussion on hacker news about moving logic into the database. Most of the discussion is low information with generalised opinions, but the subject is an interesting one. -- rt12 https://news.ycombinator.com/item?id=25290339
electrumsv
2 years ago
The ElectrumSV database access is asynchronous with optional callbacks on completion or error. All database writes are done in a single writer thread for Sqlite specific reasons. The asynchronous with callback approach mainly a simple first approach since often database is done from within the Qt UI thread and we do not ever want to block that or the whole UI becomes unresponsive. We want to transition the database access to be coroutine based where possible, and this means we need to block the
[more]
electrumsv
2 years ago
Sometimes stuff in Chrome does not work right, so I restart Chrome to take their long pending update and magically it works again. Sometimes stuff in Windows stops working right, so I restart Windows and it magically works right again after it's finished applying some presumably half started updated. Automatic fail given if a response mentions Linux -- rt12
electrumsv
2 years ago
ElectrumSV 1.3.11 has been released. Serious repercussions for Ledger and Trezor users along with some minor fixes for other things. Read more about it in the Medium article. Only download ElectrumSV from https://electrumsv.io -- rt12 https://roger-taylor.medium.com/electrumsv-1-3-11-6f09f2aaed94
electrumsv
2 years ago
I have a Ledger Nano S for testing. I used it once then one of the buttons stopped working. Given that it has two buttons, and you press one or both, it doesn't do you much good to only have one working. Occasionally I tested it and it never worked. Until today, I decided to just see if it could be detected, and tried the buttons out.. it worked again. What's up with that? Anyway, I managed to verify that the changes I made to get Ledger devices working with the latest Ledger updates again, sinc
[more]
electrumsv
2 years ago
It is looking very likely that updated Trezor devices have become permanently incompatible in some circumstances with Bitcoin SV. If you are encountering errors when signing your transactions, read the following documentation page. -- rt12 https://electrumsv.readthedocs.io/en/releases-1.3/problem-solving/hardware-wallets.html
electrumsv
2 years ago
New Trezor problem. People are getting "bytes overflow" errors when signing transactions with the latest Trezor firmware. It looks like this is caused by parent transactions that have large output scripts, where Trezor now needs to read them in and has a limited space for them capped at 15 KB. So any BSV parent transaction that pays into a Trezor wallet and has a large output will result in those coins not being spendable unless the firmware is reverted. -- rt12
electrumsv
2 years ago
Ledger's latest update is causing problems for Electrum Core and Electron Cash (and will for ElectrumSV), so if you have a Ledger hardware wallet you might want to refrain from updating the Ledger software or firmware for now. -- rt12
electrumsv
2 years ago
ElectrumSV 1.3.10 has been released. This mainly includes fixes and upgrades for the Trezor hardware wallet, but also Keepkey. Read more about it in the Medium article. Only download ElectrumSV from https://electrumsv.io -- rt12 https://roger-taylor.medium.com/electrumsv-1-3-10-f0a60d031d81
electrumsv
2 years ago
Our test build for MacOS Big Sur users has been confirmed to work where our 1.3.8 release does not. I will do a proper 1.3.9 release on Monday, but in the meantime if you want access to the test build refer to this issue within our Github project.-- rt12 https://github.com/electrumsv/electrumsv/issues/566
electrumsv
2 years ago
ElectrumSV relies on the Qt UI framework for our wallet interface. The later versions we use in our builds do not work on MacOS Big Sur. If you're encountering this, let us know and we might be able to get you a test build that works. -- rt12
electrumsv
2 years ago
You can find existing 0 satoshi outputs on the WhatsOnChain block explorer, from way back when Bitcoin Core was Bitcoin, before Bitcoin SV became Bitcoin. I can imagine valid situations in which they are used, but I do not think I can have a good picture in my mind of both the benefits and repercussions of them. My position is that a lot of the commentary is speculation based on likely as little information and knowledge about the potential as I have, and unfortunately is to me indistinguishabl
[more]
electrumsv
2 years ago
UI advice needed
This dialog completes in most cases in an instant, which results in it flickering on screen. Given it is unknown before it is displayed how long it will take, what is the best UI pattern to provide the user with a quality experience? -- rt12
electrumsv
2 years ago
Cleaning up exporting transactions..
The remaining work after adding support for signing transactions with Trezor hardware wallets that use their latest firmware, is extending our incomplete transaction format to allow spent transactions to be included. This will eventually be extended
electrumsv
2 years ago
ElectrumSV 1.3.8 has been released. Among other bug fixes, the primary changes are disabling the ability to change the script type an account uses, and enabling Trezor users to use their devices with the latest firmware. -- rt12 https://roger-taylor.medium.com/electrumsv-1-3-8-e07700fb9058
electrumsv
2 years ago
A medium article: Don’t use ElectrumSV’s broken accumulator multi-signature https://roger-taylor.medium.com/dont-use-electrumsv-s-broken-accumulator-multi-signature-fa15147dbfa4
electrumsv
2 years ago
Last night I reread the presentation from Craig Wright at Coingeek Seoul in October 2019. I recommend that anyone who does Bitcoin-related programming do the same. It covers payment channels, and benford's law for private payments. Normally when Craig talks about something he gives no details! It is very annoying. So him giving a solid presentation that literally tells you exactly how to do some very useful things, allows us programmers to add some useful tools to our programming toolkits. htt
[more]
electrumsv
2 years ago
On hardware wallet signing
In the last day or so I changed how we do Trezor signing so that we provide the signing process with the transactions containing spent coins, and so that their latest firmware can work with ElectrumSV. I feel like I should write some notes about it a
electrumsv
2 years ago
One of the first tasks today was to make ElectrumSV's 32 bit node package actually use a 32 bit node, instead of bundling a 64 bit node as it does. The lesson learned today is that you cannot compile a 32 bit node any more - which is fine as supporting a 32 bit operating system these days is inarguably more work than it's worth.
One of the first tasks today was to make ElectrumSV's 32 bit node package actually use a 32 bit node, instead of bundling a 64 bit node as it does. The lesson learned today is that you cannot compile a 32 bit node any more - which is fine as supporti
electrumsv
2 years ago
A non-final transaction is one where the inputs are allocated but hash will change before it finalises as the participants negotiate over the outputs. Currently it is not possible to have non-final transactions that spend the outputs of existing non-final transactions. What would be a use case for that? -- rt12
electrumsv
2 years ago
This following Medium explores topics that affect our next refactoring pass, where we address problems with our wallet state management. Feel free to comment on powping.. -- rt12 https://roger-taylor.medium.com/refactoring-project-2-444d1185a9f4
electrumsv
2 years ago
We're reaching the point where we are ready/need to integrate the Merchant API reference implementation into our testing environment, and maybe even the Miner ID reference implementation. Anyone done this? What about having your regtest node generating blocks using miner ID integrated with these two? -- rt12
electrumsv
2 years ago
Notes on UTXO refactoring
These are transcribed notes for the next refactoring pass at ElectrumSV's UTXO management and coin management, maybe some people will find them interesting and have suggestions..
electrumsv
2 years ago
Things I need to not have to reteach myself number 323234122. The Bitcoin SV node runs a REST server which you can enable with the `-rest` command-line argument. It does not require authentication and appears to only be accessible on localhost. You can use it for to get useful data like transactions in binary form: >>> r = requests.get("http://127.0.0.1:18332/rest/tx/95037d196cf6bf8c1c140e337c9551c073e9f0a9414048647f89a32d638b24b3.bin") >>> r.content b'\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00
[more]
electrumsv
2 years ago
I thought maybe if I looked up Andrew Chow I could find some interesting wallet development material. Here's some things I found. He works on a Python library that wraps hardware wallet access. There are several reasons we wouldn't be able to use this. But one interesting thing to note is that it claims that Ledger and Bitbox support signing bare multi-signature - who knew? https://pypi.org/project/hwi/ He streams wallet development related videos on Twitch. These are currently related to Sql
[more]
electrumsv
2 years ago
When something we have been working on is ready, we will be integrating SPV channel support into ElectrumSV starting with Merchant API and looking to see what else we can base on SPV channels. Getting close.
-- rt12
electrumsv
2 years ago
Within the next couple of months I'd like to see ElectrumSV using an open source library that both parses/generates common script forms by type and parameters, which has it's own comprehensive unit tests and is supported in multiple languages for common usage. -- rt12
electrumsv
2 years ago
Exporting private keys is meaningless. You need to export metadata that provides spending context. The following video is related, to that and also relates to the topic of incomplete transactions and communicating cosigning context for instance.
-- rt12
electrumsv
2 years ago
I've spent way way more time on coin splitting today than I should have. It turns out that I can't get my unsplit transactions to mine on Bitcoin Cash, so I have started to wonder about the current day dangers of sending unsplit coins. The default fee for ElectrumSV is 0.5 satoshis per byte, and having tried to get an unsplit transaction created in ESV to broadcast on Bitcoin Cash, I was unable to. Most Electron Cash servers reject it, and it does not seem to propagate if anything does. The im
[more]
electrumsv
2 years ago
Looking for unsplit BCH/BSV to document the process of splitting in ElectrumSV. All I need is 5 cents worth. If someone can successfully send me that, will pay $5 BSV. -- rt12
electrumsv
2 years ago
I've written a quick article on the exchange of incomplete transactions. We currently use these for offline signing and multi-signature. Feel free to read this on Medium, and comment on it here. https://roger-taylor.medium.com/on-incomplete-transactions-273b214267eb [ Please do not tip this message, ElectrumSV does not take donations which would include tips, if you want to encourage more development-related messages tip anyone who responds with a comment that you like.. ] -- rt12
electrumsv
2 years ago
After a discussion on Metanet.ICU yesterday about the path forward for hardware wallets and ElectrumSV, I took a small amount of time to look at the source code of various open source "not for the real bitcoin" mobile wallets. None appeared to be using trusted execution environments, and probably for good reason - it's likely too costly to support. Many seemed to be doing what ElectrumSV does to secure it's keys, encrypt them at rest. A few used OS key stores, but they seemed to be in the minori
[more]
electrumsv
2 years ago
We had a user yesterday report sweeping a private key in ElectrumSV and the coins being stolen and mixed within 10 minutes. The only problem is they were using the latest version of ElectrumSV (1.3.7) and there is no known fake/malware version of that release yet. So this implies that they must have been hacked by some really proactive hacker or malware lurking on their computer. However, one thing you may not be aware of is that I removed the ability to sweep coins in the move from ElectrumSV
[more]
electrumsv
2 years ago
While it causes us to be falsely identified as malware, it's hard to beat PyInstaller for Python application packaging. It reduces 240 MiB of dependencies down to 18 MiB by stripping all the unused parts away. It shouldn't be as stable as it is, given how effective it is. -- rt12
electrumsv
2 years ago
Do not use ElectrumSV 1.3.6 (the current latest version) or earlier with Python 3.8.6 or above. There is a regression or intentional change in it which breaks existing ElectrumSV code. We will have to try and identify all code that is affected and fix this in 1.3.7. -- rt12
electrumsv
2 years ago
A user said to me "why is my wallet not working correctly?" I looked into it and they are using the same seed words in ElectrumSV and another wallet at the same time. No wallet can afford to handle this. Please do not do this. -- rt12
electrumsv
2 years ago
Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrggggggggggggggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! https://github.com/pypa/pip/issues/7753 -- rt12
electrumsv
2 years ago
One of the least enjoyable part of programming is when you get errors that shouldn't be happening in someone else's code. Maybe the coders of a dependency of a dependency didn't write their installation code correctly, and the maintainers of the package installation software decided they wanted things to work cleaner and removed some incorrect behaviour. Now the installation doesn't work, and you need to find out why. So you have to rule out problems with your local environment, and maybe you ev
[more]
electrumsv
2 years ago
On ElectrumSV, mobile and UI
One of the things I recently explored was the possibility that ElectrumSV could use a framework like Ionic or Flutter to move forward. The following article summarises my position on the likely path forward.
electrumsv
2 years ago
Once upon a time several jobs ago, management in the company I worked in would post announcements. The announcements followed the form where someone had done something wrong in a general way, and no concrete details were to be given so that you wouldn't know who it was. The result was that often you didn't quite know what it was you were supposed to not be doing, or even if you had done it and the announcement was referring to you even though you were pretty sure it wasn't. I considered them to
[more]
electrumsv
2 years ago
I've added a page to our documentation that aims to provide a go-to place for help with ongoing hardware wallet problems. The solutions will be fleshed out as time allows. -- rt12 https://electrumsv.readthedocs.io/en/releases-1.3/problem-solving/hardware-wallets.html
electrumsv
2 years ago
We've added documentation for ElectrumSV, it is very limited for now, but we'll be fleshing it out as we get time. -- rt12 https://electrumsv.readthedocs.io/en/releases-1.3/index.html
electrumsv
2 years ago
ElectrumSV-1.3.6.exe was classified as malware by Windows Defender, but they have now reclassified it as an incorrect detection. If you were affected by this (we received no reports) update your definitions please. -- rt12
electrumsv
2 years ago
Looking for a programmer to merge QR code reading / camera code from Electron Cash. Will require a certain level of existing programming experience where this kind of task is just a variation on what you are already capable of. No money, but open source work matters on your resume. See this Electron Cash pull request: https://github.com/Electron-Cash/Electron-Cash/pull/1376 -- rt12
electrumsv
2 years ago
On unfiltered content, social media followers and doing it better on Bitcoin SV
Every existing form of social media is based on the experience of being forced to view other people's content.
electrumsv
2 years ago
On a global marketplace for name reservation
I am not a Bitcoin expert. As always, this article is a quick effort to summarise my opinion on some subject. In this case, the subject is marketplaces for names.
electrumsv
2 years ago
On SPV
There is no SPV on Bitcoin SV at the moment. These are just some quick notes on what I've been thinking is needed for SPV to be doable.
electrumsv
2 years ago
It was reported that Microsoft's Windows Defender gives a false positive for our 1.3.6 portable executable. I've double-checked it is the exact executable Microsoft's CI service built for us, and put in a false positive report with Microsoft. -- rt12 https://github.com/electrumsv/electrumsv/issues/510
electrumsv
2 years ago
On P2P connectivity, IPv4 NAT and the path forward
Here are my thoughts on P2P connectivity, the suitability of NAT on IPv4 connections for this and the path forward.
electrumsv
2 years ago
On P2P Transaction Negotiation
One thing that payment to a non-custodial representative service cannot do, is provide P2P payment where negotiation is involved in the structure of the final transaction used to pay whatever is due.