The decentral & blockchain ecosystem has been growing rapidly this year and we’ve been working hard to stay right on its forefront. There are so many tokens & projects we are eager to support. The innovation and creativity we see in this industry are inspiring. This past Spring we began planning a significant expansion of our own infrastructure to support our rapid growth and to facilitate much more rapid integration of new tokens in the future.
Jaxx uses Insight Server – the same service used by several other major platforms. Insight, you may be aware, decided not to support Bitcoin Cash. This left us with a rather lot of work to sync and reindex the BCH blockchain on a completely new system.
This process has taken longer than expected. The BTC blockchain is quite large.
We’re quite close to being complete with BCH integration. We spent most of this past week testing and, as of the end of day Friday, still see performance issues. I promise that when we do release BCH support in our wallet that it will be reliable. User experience & user control are our highest priorities here at Jaxx. The masterseed, the interface and the nodes we run are the source of that empowerment; our team is proud of our platform & we’ll always hold ourselves to these high standards.
We’re not just employees here – we’re users, too, and we’re also anxious to be able to control our BCH in our own Jaxx wallets. We’ll be ready soon. In the meantime, if you received BCH in the August 1st fork and have not moved it off to a different address, that BCH is safe and will be accessible in Jaxx next week.
#BCHinJaxx Update for September 14th:
An update from Nilang, our CTO, and the back-end dev team: Today we’re continuing our work from yesterday in verifying information from our current indexer. We’ve discovered that our method has some limitations due to the amount of data we’re requesting from the client, which is a new issue we’ll need to address, ASAP. It’s likely we will be testing late tomorrow.
#BCHinJaxx Update for September 15th:
Today’s update on BCH in Jaxx: Our efforts yesterday verifying data from the indexer progressed well. We’ve not had any new surprises or challenges and have been able to move forward strongly. We’ll be testing this afternoon.
#BCHinJaxx Update for September 18th:
Today’s update from Nilang, our CTO: “We are continuing testing & validating transaction data on the BCH chain. Testing on Friday went well but we’re not yet at a point to be confident enough to take it live. Testing continues.”
#BCHinJaxx Update for September 19th:
Yesterday’s testing went well in that we have been able to move through several significant items on our list to confirm. Parsing & indexing has been a challenge. There still remain four significant hurdles for us to clear before we can call ourselves ready to take this code to production. Specifically (our largest issue) surrounds blocks with broken transaction data – how we manage this. Testing continues
#BCHinJaxx Update for September 20th:
Testing will continue later today after we finish debugging work from yesterday related to our indexing process. We’ve made progress from yesterday but are still not in a place to deploy this code.
#BCHinJaxx Update for September 21st:
Debugging the broken transaction issue in our indexing process continues. We’re well past half-way through the list. We’re still not in a place to take our code to production but we have moved closer from where we were yesterday. We’ll continue sweating today.
#BCHinJaxx Update for September 22nd:
Though we’re not done the debugging work on the indexer we do continue to move forward towards the finish line. In preparation to actually go live we’ve begun testing new transactions and shapeshifting. Our eye is on edge cases & on identifying potential bugs. We continue.
#BCHinJaxx Update for September 25th:
In our edge-case work from last week we’ve identified a new “show-stopping bug” that’ll get our attention today. We’ve a clear path to resolving this one and expect to square it away and be back to testing, pronto.
#BCHinJaxx Update for September 27th:
We’ve deployed a significant upgrade to the Jaxx platform, our version 1.3. This version includes significant backend improvements that the process of integrating BCH into our v1.2 series exposed as necessary. 1.3 removes the largest roadblocks to BCH integration – we do, however, need to do the integration & test it still. This work will begin late in the day today.
#BCHinJaxx Update for September 28th:
Testing of BCH on our new (1.3) release has begun and is progressing well. We’ll not be through it all today and we’re not going to tempt fate by releasing this on a Friday. Could you imagine? We’ll continue testing tomorrow & likely into early next week. Stay tuned, we’re moving forward.
#BCHinJaxx Update for September 29th:
We pick up today right where we left off yesterday. Regardless of how well it goes we’ll not be releasing it on a Friday afternoon. We’ll keep pushing and update you again Monday morning with out plans for the week
#BCHinJaxx Update for October 2nd:
Good Monday morning – we didn’t get ourselves to a testable release on Friday – we continue our work here today with that goal.
#BCHinJaxx Update for October 3rd:
Testing BCH in our 1.3 continues well. We’ve completed testing on the server side and have moved to our front end tests. Progress.
#BCHinJaxx Update for October 4th:
Testing has gone well enough that we’ll be starting a build that includes BCH. This build won’t be released today – but assuming it goes well, we will release BCH in our Chrome & Android versions, tomorrow.
#BCHinJaxx Update for October 5th:
In order to initialize your BCH wallet in Jaxx you will need to update your instance of Jaxx to the most recent 1.3.2. BCH will not be supported in older versions of Jaxx. We have included code dependencies necessary for BCH support in our 1.3.2 release but we have not enabled BCH YET. We have a small amount of testing remaining before flipping that switch. Depending on how those last tests go tomorrow, we may be in a position to enable BCH before the weekend. If not – we will inform you – we will look to make this release next week.
#BCHinJaxx Update for October 6th:
It will have to be next week; for now we’ll wish you a happy (Canadian) Thanksgiving. We’ll be back in our office and working towards BCH releases Tuesday 10th October.
#BCHinJaxx Update for October 10th:
We’re back in the saddle after a long holiday weekend. We’ll continue pushing to test and verify BCH in our 1.3 release. We’ll keep this post updated as work progresses through the week.
#BCHinJaxx Update for October 17th:
It’s been a week since we last posted our daily update; we’ve been quiet but we’ve been working. We’ve got BCH completed and incorporated into the front end of our 1.3 releases. Before we will activate it in your wallet, however, we still have work to do on the back end BCH nodes. That work is ongoing – see below for specifics on what we’re doing, right from the keyboards of our developers on the project.
In plain language, we are pursuing two development solutions concurrently to solve our problems indexing and parsing the BCH chain.
– Writing a tool that will repair BCH addresses that incorrectly show zero-balance due to bad indexing
– Address diagnostics for correct balance verification addresses.
– Writing a tool for converting addresses between BCH and BTC formats, which is the main reason for addresses giving no balance.
– Writing a parsing tool for the blockchain to have a functioning parser.
– Created base utility which makes rpc calls against the BCH blockchain and maximum number of blocks.
– Added logic for converting block index into block hash and reading the block. Parsed result to create a cache for both block details and transactions. Worked on inserting the cache into MySQL, having an issue with BLOB inserts.
– Resolved binary/BLOB conversion issues; working on bulk MySQL updates.
– Resolved MySQL bulk insertions and ran through insertion tests. Hit an RPC timeout issue.
– After team discussion, we put retry logic into the new tool and it started processing; this isn’t returning all the transaction details. Trying a REST API call instead.
– Investigated call and will experiment further once first experiment completes.
– Turned on the REST API and started updating the indexer to extract the transaction details.
– Updated schema to reflect changes made on Aurora; removal of 32 byte hash transaction and BLOBs. Tested REST API block call, started to add support for vin and vout entries.
– Writing parsing routines for vin and vout.
– Completed vin/vout code, rewrote and tested caching system (for MySQL updates) and started import.
– Working on empty vout values, code currently errors and skips over.
#BCHinJaxx Update for October 18th:
Work continues in earnest on our two production solutions surrounding the indexing of, and interacting with, BCH. We’ve also begun a third, experimental, approach. Notes from our dev teams on these projects:
– Input indexing and tests
– Modified indexer to account for new data model from yesterday
– Checking addresses on BCH Insight to see how they’re built
– Working on tool to build addresses according to different formats
– R&D on indexer infrastructure
– Developing Performance Profiler
– Multithreaded I/O schedule
#BCHinJaxx Update for October 19th:
We’ve been updating our cloud architecture to use Insight’s bch implementation api. Specifically we’ve been compling their api and the necessary supporting libraries. We’ll then be building the bch blockchain such that we can do indexing & query the blockchain in a more useful manner.
A more specific rundown from one of our devs: “Looked into what is required for Insight configuration to support BCH. Continued with Insight configuration; modified configuration but decided to wait on re-indexing for the moment while I copied BTC blockchain to a separate directory in order to experiment with Insight. Had unexpected “stat” issues when copying the files but was finally able to copy and verify. As requested, looked into removing blocks after BCH, found a possible solution but will need further work. Bottom line parse the block files, look for height 478558 and delete everything after (including 478558). As a backup, started compressing my local copy of BCH. Received docker file and started to look at Insight integration – wasn’t able to find direct docs
#BCHinJaxx Update for October 20th:
With respect to the Insight implementation mentioned: node is running but API not responding correctly. Suspect configuration issue – will address this today. Other specifics:
– Output spending: verification of outputs, will go more in depth tomorrow once the master list of addresses is on-hand.
– Modified stored procedures according to data model changes
– BTC/BCH address adapter (this is work in progress)
With respect to R&D:
1. R&D on indexer infrastructure
1.2.1. Current RPC offering (slow)
1.2.2. Direct reading
#BCHinJaxx Update for October 23rd:
– Running address tests and Working on the algorithm for BTC -> BCC address conversion
– Tooling, Benchmarking, and Profiling; reviewing mathematically formal cases
We’ve been preparing end-to-end test cases for tomorrow. We’re excited and looking forward to the outcomes of those tests.
#BCHinJaxx Update for October 24th:
We’ve begun testing BCH in the wallet. In our primary production solution for BHC: Indexing is complete and we left the tester running overnight to get a good batch of results to review this morning. In today’s tests we’ve been seeing transaction mempool conflicts and another issue in the front end where a GET to the tx/send endpoint doesn’t update transaction history.
Development of our secondary production system continues. From our lead developer on the project: “Verified BCH state – completed 70% of the blockchain loading; very slow. Then resolved BCH Claim issue when still attempting to claim after a successful txn, added transactions messages and removed commented code.”
#BCHinJaxx Update for October 25th:
* AWS Volume expansion for staging: researched best practices for AWS Volume resizing; worked out a series of steps to update the AWS staging volume. Started to shutdown the staging instance but found the “delete-on-termination” flag was set to TRUE. Found an article that describes how to update an already running instance but the tone suggested it “should” work. Decided to do the snapshot without bringing down the instance. Instead of resizing the root volume, will create a new volume from the snapshot and mount it to staging instead; this is the preferred approach. Created new volume from snapshot, updated mount point and restarted BCH Insight daemon. Finally, end-to-end Insight BCH testing.
* Testing BCH transactions send receive process, Coding transactions parser, confirmations counter, Balances updater.
#BCHinJaxx Update for October 26th:
Today we have been:
– Made utxo call not return utxos that are spent in a transaction in the mempool
– Included unconfirmed txs in transaction list call
– Working on unconfirmed transaction details call more fully (this remains in-progress)
– Reviewed BCH Claim process and raised points regarding the reason we decided to query BTC instead of only from BCH. Will explore this deeper tomorrow.
– Spent time going through BCH performance changes for claim calculation. Still need to confirm on waiting until restore history completes before starting the next.
– Preparing for further BCH Insight end-to-end testing. (BCH Insight responds to all queries; however, all the values are zero. The Bitcoin_ABC version of the blockchain does contain the correct values but unsure why Insight isn’t picking it up – more work here is required.
– Wallet-side will need some code changes to handle emergency switch overs (once Insight is working stably). More importantly will need to discuss changing the version byte to prevent users from unintentionally sending BCH to a BTC wallet or BTC to a BCH wallet. Continuing to looking Insight BCH to determine why the queries are having an issue.
#BCHinJaxx Update for October 27th:
– resolved the UTXO / mempool issues
– resolved unconfirmed transaction issues
– explored BCH claim process; preparing for exception testing next week
– explored “The zero problem” from yesterday; despite Insight indicating the synchronization was finished, it wasn’t. So test cases were referencing data from yesterday which wasn’t available yet. Planned management of this and set re-testing plans for Monday.
#BCHinJaxx Update for October 30th:
Today we’ve been pursuing BCH in Jaxx with:
– R&D on indexer infrastructure with byte-level parsing of the blockchain.
– Benchmarking REST API
— Testing REST API block call, doing some basic initial benchmarking and looking into possible parsing solutions
– Discussing possible parsing solutions, including the byte-level experiment.
– Looking into mempool failure issue, causes, possible solutions and approaches
— Determined to increase memory for the moment and possibly use a stream to parse the resulting JSON. This will be tested ASAP.
– Checked status of BCH Insight, read up on November 13 target changes for Bitcore ABC and spun up a new instance to test Bitcore ABC 0.15.
#BCHinJaxx Update for October 31st:
– Solved the mempool failure issue;
– Completed front-end test cases;
– Rolling out new Insight instance compliant to BCH 13th November changes (will continue this, tomorrow)
– Completed benchmarking REST API; update discussions of parsing solutions held with key team members; adjusted and outlined next-steps for work here.
November 6th: a large block of Chrome and Android users will see BCH support in Jaxx.
November 7th & 8th: increased numbers of Chrome and Android users will see support for BCH in Jaxx. All users of the Mac, Windows and Linux Desktop Jaxx Applications will see support for BCH.
November 9th: all users on Desktops, Android and Chrome will see BCH support in Jaxx.
An update to the Apple App Store will be made shortly; at the time of this post we have yet to submit the iOS update to Apple for approval.
Recall: you are in complete control of your assets through their private keys. You should back-up your 12-word Masterseed to be sure you never lose access those assets. Your keys, your funds, and your wallets are all in your control; we do not have access, ever. You should write down your 12-word Backup Phrase found by touching Menu > Tools > Backup Wallet and store that phrase in a safe and secure place. Conveniently, this phrase is all you need to pair your wallet from one platform to another.
#BCHinJaxx Update for November 13th:
Good morning – a short note to confirm that we are 100% rolled-out with BCH on our Chrome Extension, Android, Mac, Windows and Linux desktop versions. iOS will follow shortly.
Reprinted from here