Skip to content

Launch compatibility matrix #183

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

jnewbery
Copy link
Contributor

@jnewbery jnewbery commented Aug 7, 2019

This PR now includes the blog post launching the compatibility matrix and other minor changes for the launch.

Still TODO:

@harding
Copy link
Collaborator

harding commented Aug 7, 2019

I'm going to update this comment with a todo list of things I personally think should be done (or at least discussed) before merging.

  • Drop segwit v1 sending scoring. Until Bitcoin Core 0.19 is released with default relay for >0 segwit, I think this information is more likely to confuse readers and even wallet authors than it is to help them.
  • Add context to detail pages for items that are "Not tested". Discussed with @bitschmidty and he's working on it (addressed in cf6dcae)
  • (Optional but I'd prefer it) get Compat: reactivate schema checker #190 working and merged to ensure all wallet/service data files are well defined

@adamjonas
Copy link
Member

adamjonas commented Aug 7, 2019

Cross-posting here so this gets seen as suggested by John - a833b74#r34610802.

@jnewbery jnewbery changed the title [Do not merge] Add links to compatibility pages [Do not merge] TODO before launching compatibility pages Aug 7, 2019
@jnewbery jnewbery changed the title [Do not merge] TODO before launching compatibility pages [Do not merge] TODOs before launching compatibility pages Aug 7, 2019
@jnewbery
Copy link
Contributor Author

jnewbery commented Aug 8, 2019

I think I've mentioned this to @bitschmidty but noting it here so it doesn't get dropped:

  • Add note saying that contributions are welcome and documenting how issues/PRs can be raised.

@bitschmidty
Copy link
Contributor

bitschmidty commented Aug 9, 2019

One issue across the data files' RBF Usability sections that I would like to get agreement on is the "prefixes". It has caused confusion and I would like to standardize.

Testing RBF involved the following scenarios:

  • (trying to) Sending RBF Transaction
  • (trying to) Bumping RBF Enabled Transaction
  • Receiving RBF Transaction
  • Receiving Bumped RBF Transaction

Screenshots were taken for each of these scenarios which became the Usability section screenshots for each wallet. Each screenshot then had the scenario (ex 'Sending RBF Transaction - ' prefixed to the screenshot for context).

That’s the history but I realize there is confusion since wallets that cannot send RBF signaling transactions now have this "Sending RBF Transaction" text in the screenshot captions.

  • I am recommending we standardize on these usability section prefixes for RBF:

  • Sending RBF Transaction -> Sending Transaction

  • Bumping RBF Enabled Transaction -> Attempting Transaction Replacement

  • Receiving RBF Transaction -> Receiving Transaction Signaling RBF

  • Receiving Bumped RBF Transaction -> Receiving Replacement Transaction

@jnewbery @harding looking for feedback before rolling these out to the data files globally.

@harding
Copy link
Collaborator

harding commented Aug 9, 2019

@bitschmidty SGTM. Thanks!

@jnewbery
Copy link
Contributor Author

jnewbery commented Aug 9, 2019

I am recommending we standardize on these usability section prefixes for RBF [...] looking for feedback before rolling these out to the data files globally.

Sounds good to me too!

@bitschmidty
Copy link
Contributor

I think I've mentioned this to @bitschmidty but noting it here so it doesn't get dropped:

Add note saying that contributions are welcome and documenting how issues/PRs can be raised.

Opened #192 for this

@bitschmidty
Copy link
Contributor

Pushed commit to #189 to 'Add context to detail pages for items that are "Not tested".' (addressed in cf6dcae)

@0xB10C
Copy link
Contributor

0xB10C commented Aug 12, 2019

The PRs #178 #179 #180 #181 #182 add a lot of unoptimized/unconpressed png images. I tested it for the png's in /img/compatibility/bitcoin-core and saw that their size could be reduced by around 37% to 43%. This would result in faster loading times for visitors on the compatibility pages. The optimization/compression is lossless.

I've used a tool called optipng to optimize png's. Once the PRs are merged optipng *.png could be run in /img/compatibility which would recursively optimize the png's for the compatibility pages.

Output of optipng *.png in img/compatibility/bitcoin-core:

Click to expand
** Processing: bitcoin-core.png
523x96 pixels, 8 bits/pixel, 65 colors (1 transparent) in palette
Input IDAT size = 4310 bytes
Input file size = 9472 bytes

Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 4310

bitcoin-core.png is already optimized.

** Processing: default-wallet-send-screen.png
861x560 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 57601 bytes
Input file size = 57707 bytes

Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 32184

Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 32184

Output IDAT size = 32184 bytes (25417 bytes decrease)
Output file size = 32254 bytes (25453 bytes = 44.11% decrease)

** Processing: increase-fee-confirmation-prompt.png
343x189 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 19627 bytes
Input file size = 19709 bytes

Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 11152

Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 11152

Output IDAT size = 11152 bytes (8475 bytes decrease)
Output file size = 11222 bytes (8487 bytes = 43.06% decrease)

** Processing: low-fee-confirmation-with-rbf-note-enabled.png
430x317 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 42037 bytes
Input file size = 42131 bytes

Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 23539

Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 23539

Output IDAT size = 23539 bytes (18498 bytes decrease)
Output file size = 23609 bytes (18522 bytes = 43.96% decrease)

** Processing: low-fee-confirmation-with-rbf-note.png
430x301 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 39743 bytes
Input file size = 39837 bytes

Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 22463

Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 22463

Output IDAT size = 22463 bytes (17280 bytes decrease)
Output file size = 22533 bytes (17304 bytes = 43.44% decrease)

** Processing: notification-incoming-transaction.png
343x63 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 12690 bytes
Input file size = 12760 bytes

Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 7896

Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 7896

Output IDAT size = 7896 bytes (4794 bytes decrease)
Output file size = 7966 bytes (4794 bytes = 37.57% decrease)

** Processing: notification-replacement-transaction.png
336x50 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 12165 bytes
Input file size = 12235 bytes

Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 7566

Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 7566

Output IDAT size = 7566 bytes (4599 bytes decrease)
Output file size = 7636 bytes (4599 bytes = 37.59% decrease)

** Processing: segwit
Error: Unrecognized image file format

** Processing: transaction-details-bumped-transaction.png
620x272 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 65001 bytes
Input file size = 65107 bytes

Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 37835

Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 37835

Output IDAT size = 37835 bytes (27166 bytes decrease)
Output file size = 37905 bytes (27202 bytes = 41.78% decrease)

** Processing: transaction-details-context-menu-increase-fee.png
861x560 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 84042 bytes
Input file size = 84172 bytes

Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 49556

Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 49556

Output IDAT size = 49556 bytes (34486 bytes decrease)
Output file size = 49626 bytes (34546 bytes = 41.04% decrease)

** Processing: transaction-details-original.png
620x272 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 59625 bytes
Input file size = 59731 bytes

Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 35340

Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 35340

Output IDAT size = 35340 bytes (24285 bytes decrease)
Output file size = 35410 bytes (24321 bytes = 40.72% decrease)

** Processing: transaction-details-outgoing-rbf.png
620x272 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 55326 bytes
Input file size = 55432 bytes

Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 29669

Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 29669

Output IDAT size = 29669 bytes (25657 bytes decrease)
Output file size = 29739 bytes (25693 bytes = 46.35% decrease)

** Processing: transaction-details-rbf-incoming.png
620x272 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 50157 bytes
Input file size = 50263 bytes

Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 28994

Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 28994

Output IDAT size = 28994 bytes (21163 bytes decrease)
Output file size = 29064 bytes (21199 bytes = 42.18% decrease)

** Processing: transaction-details-replacement.png
620x272 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 55383 bytes
Input file size = 55489 bytes

Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 31288

Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 31288

Output IDAT size = 31288 bytes (24095 bytes decrease)
Output file size = 31358 bytes (24131 bytes = 43.49% decrease)

** Processing: transaction-list-outgoing-rbf-transaction.png
861x560 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 57140 bytes
Input file size = 57246 bytes

Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 32547

Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 32547

Output IDAT size = 32547 bytes (24593 bytes decrease)
Output file size = 32617 bytes (24629 bytes = 43.02% decrease)

** Processing: transaction-list-post-bump.png
861x560 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 70069 bytes
Input file size = 70187 bytes

Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 39516

Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 39516

Output IDAT size = 39516 bytes (30553 bytes decrease)
Output file size = 39586 bytes (30601 bytes = 43.60% decrease)

** Processing: transaction-list-rbf-incoming.png
861x560 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 81717 bytes
Input file size = 81835 bytes

Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 46425

Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 46425

Output IDAT size = 46425 bytes (35292 bytes decrease)
Output file size = 46495 bytes (35340 bytes = 43.18% decrease)

** Processing: transaction-list-replacement-incoming.png
861x560 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 128260 bytes
Input file size = 128414 bytes

Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 72802

Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 72802

Output IDAT size = 72802 bytes (55458 bytes decrease)
Output file size = 72872 bytes (55542 bytes = 43.25% decrease)

** Processing: wallet-send-screen-fee-details.png
861x560 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 89187 bytes
Input file size = 89317 bytes

Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 51572

Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 51572

Output IDAT size = 51572 bytes (37615 bytes decrease)
Output file size = 51642 bytes (37675 bytes = 42.18% decrease)

** Status report
19 file(s) have been processed.
1 error(s) have been encountered.

@harding
Copy link
Collaborator

harding commented Aug 12, 2019

+1 for optipng. I use it for most of the images I add to this repository and elsewhere (and have been for years).

One option is to run it as part of the site build on Netlify via the Makefile. e.g. find _site -name '*.png' | xargs optipng -o7. That way it wouldn't matter if unoptimized images were added to the repository. On the downside, optipng is pretty slow, so it would significantly delay site deployment times.

@0xB10C
Copy link
Contributor

0xB10C commented Aug 12, 2019

I somehow never looked into the man pages and thus didn't know about -o7 and it's behavior. Only used the defaults, since they seem to work fine. I guess it would be sufficient to use the slow -o7 before committing and the default and faster -o2 when deploying to catch remaining ones.

Another idea might be a test as a bash script for Travis, which checks if new png's are optimized. Failing when not optimized.

However it might be better to open a separate issue for repository wide discussion. I just thought that this PR is the right place raise awareness before the compatibility pages go live.

@bitschmidty
Copy link
Contributor

@0xB10C Thanks for taking a look and for the recommendation to optimize the images using optipng. I defer to @harding and yourself on the best way, if any, to formalize this in the pipeline.

@jnewbery
Copy link
Contributor Author

One option is to run it as part of the site build on Netlify [...] it would significantly delay site deployment times.

I'd prefer not to do something that slows down deploy and preview times.

Another idea might be a test as a bash script for Travis, which checks if new png's are optimized. Failing when not optimized.

I much prefer this, since it would only impact PRs that add pngs, and wouldn't slow down the preview sites for any PRs.

Agree that we should move this discussion to a separate issue or PR.

@0xB10C 0xB10C mentioned this pull request Aug 13, 2019
2 tasks
@jnewbery jnewbery force-pushed the 2019-08-compatibility-pages-links branch from 09628d0 to a75b942 Compare August 14, 2019 01:10
@jnewbery
Copy link
Contributor Author

rebased on master

@bitschmidty
Copy link
Contributor

pushed a couple commits here related to the Compatibility Matrix naming

@jnewbery jnewbery changed the title [Do not merge] TODOs before launching compatibility pages Launch compatibility matrix Aug 19, 2019
@harding
Copy link
Collaborator

harding commented Aug 19, 2019

Tested ACK f4fa74f (assuming dependencies are merged first).

@jnewbery
Copy link
Contributor Author

Added a commit that adds more details to the blog post excerpt.

@jnewbery
Copy link
Contributor Author

ACK c272c7f

@jnewbery jnewbery force-pushed the 2019-08-compatibility-pages-links branch from c272c7f to c292640 Compare August 20, 2019 14:13
@jnewbery
Copy link
Contributor Author

rebased on master

@harding
Copy link
Collaborator

harding commented Aug 20, 2019

ACK c292640

@bitschmidty bitschmidty force-pushed the 2019-08-compatibility-pages-links branch from c292640 to eabc649 Compare August 20, 2019 14:31
@bitschmidty bitschmidty merged commit 2ca0663 into bitcoinops:master Aug 20, 2019
@jnewbery jnewbery deleted the 2019-08-compatibility-pages-links branch October 8, 2019 19:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants