Skip to content
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

[WIP] Add BIP 151 support #449

Closed
wants to merge 6 commits into from
Closed

[WIP] Add BIP 151 support #449

wants to merge 6 commits into from

Conversation

droark
Copy link

@droark droark commented Feb 4, 2018

Initial step: In Git, submodules and subtrees seem to have fundamental issues with each other that prevent subtrees from being used alongside submodules. Delete the FCGI submodule, re-add it as a subtree, and add Jonas Schnelli's ChaCha20Poly1305 library.

Much work remains to be done. The list includes but is not limited to:

  • Integrate Jona's library into Armory's make system and confirm that the library is built.
  • Add a library that can handle ECDH (libbtc, which will be used by Armory eventually and contains libsecp256k1, where the "experimental" ECDH code looks fine to me and is used in production environments already).
  • Confirm that Armory code can call libchacha20poly1305 and libsecp256k1.
  • Implement BIP 151 in Armory.
  • Confirm that the Armory build system properly builds the test and benchmark binaries if requested.
  • Because BIP 151 support in Core may not come for awhile (0.18 is my guess), look into ways to test Armory's BIP 151 capabilities. This may include writing or modifying a Wireshark plugin, or using some other tool to inject raw packets into Armory.
  • Any miscellaneous cleanup.
  • (TASK FOR GOATPIG?) Integrate the library into the Windows build system.
  • (RECOMMENDED) Further cleanup of Armory's build system as needed.

git-subtree-dir: cppForSwig/chacha20poly1305
git-subtree-split: d7d214b879a65529739f2d526bf9d36c2c57128c
- Integrate Jona Schnelli's ChaCha20Poly1305 library into our code.
- Miscellaneous build system cleanup.
@droark
Copy link
Author

droark commented Feb 8, 2018

Confirmed that the library compiles on Ubuntu 17.10. Will try macOS later. Windows will have to wait.

I also want to point out one specific change I made in Makefile.am. ArmoryDB was listed under noinst_PROGRAMS. This doesn't make sense to me. If make install is being invoked, you want ArmoryDB to be part of the install. So, I fixed this. While I included it as a possible task, cleaning up the Make system is probably best done as a separate PR. Not that the system is terrible now but it could use some cleanup, not to mention I've heard people complain that proper Armory packages can't be built.

@droark droark mentioned this pull request Feb 10, 2018
@droark
Copy link
Author

droark commented Feb 12, 2018

Per our discussion, I'll be backing out the libsecp256k1 commit and adding libbtc, which includes libsecp256k1. libbtc technically isn't part of this commit but we're planning to use it as a drop-in replacement for Crypto++ eventually (0.98???). We might as well get it in the build system now.

git-subtree-dir: cppForSwig/libbtc
git-subtree-split: a8506a03718257a7e6797bac4eafee0f60abb22b
@droark
Copy link
Author

droark commented Feb 12, 2018

libbtc has been added. However, for now it may not be possible to build libbtc on Windows. This PR is designed to allow the code to compile using Visual Studio 2015. It'll need a push (and a rebase) if it's going to be committed, otherwise somebody will have to fix everything up down the road.

For now, I'm just going to build libbtc on Linux and macOS. If it becomes an issue, I can just compile libsecp256k1 until we're ready for Armory to use libbtc and replace Crypto++.

@droark droark force-pushed the dev-bip151 branch 2 times, most recently from 2da2549 to 536a4e1 Compare February 13, 2018 00:34
Also do a bit of random cleanup of Autotools files.
@droark droark force-pushed the dev-bip151 branch 2 times, most recently from a1a4db1 to c084ef9 Compare February 16, 2018 00:37
@droark
Copy link
Author

droark commented Feb 16, 2018

Incoming turbulence. Rebase is doing some weird things. Am thinking it's best to just delete this branch and start fresh. I'll try to avoid having to close this PR.

@droark droark closed this Feb 16, 2018
@droark droark deleted the dev-bip151 branch February 16, 2018 01:24
@droark droark mentioned this pull request Feb 16, 2018
10 tasks
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.

1 participant