Skip to content

Integrate new wallet address manager package - #147

Closed
davecgh wants to merge 6 commits into
btcsuite:masterfrom
davecgh:davec_intwaddrmgr
Closed

Integrate new wallet address manager package#147
davecgh wants to merge 6 commits into
btcsuite:masterfrom
davecgh:davec_intwaddrmgr

Conversation

@davecgh

@davecgh davecgh commented Oct 29, 2014

Copy link
Copy Markdown
Member

This pull request converts the wallet to use the new secure hierarchical deterministic wallet address manager package.

The following is an overview of modified functionality:

  • The wallet must now be created before starting the executable
  • A new flag --create has been added to create the new wallet using wizard style question and answer prompts
  • Starting the process without an existing wallet will now display a message to run it with --create
  • Providing the --create flag with an existing wallet will simply show an error and return
  • When an existing legacy keystore exists, the --create flag will prompt you for the old private passphrase and automatic convert all old addresses to the new wallet being created

Github seems to have incorrectly closed the previous pull request #138.

@davecgh
davecgh force-pushed the davec_intwaddrmgr branch 2 times, most recently from a715835 to 8f1cd24 Compare November 10, 2014 09:27
@davecgh

davecgh commented Nov 10, 2014

Copy link
Copy Markdown
Member Author

I've rebased this on top of #153.

@davecgh
davecgh force-pushed the davec_intwaddrmgr branch 2 times, most recently from 77fd5f1 to d851527 Compare November 10, 2014 20:09
@davecgh

davecgh commented Nov 10, 2014

Copy link
Copy Markdown
Member Author

Rebased and updated for changes in #152.

@davecgh

davecgh commented Nov 11, 2014

Copy link
Copy Markdown
Member Author

For anyone wondering about the status of this, it is being maintained until the current txstore is converted to use the new walletdb namespacing. However, it has been fully reviewed and is ready for the additional modifications that will be needed by the forthcoming txstore changes. Once those changes are in and reviewed, this pull request will land and thereby make the sweeping changes brought be all these other packages available in btcwallet.

@davecgh
davecgh force-pushed the davec_intwaddrmgr branch 8 times, most recently from ca86ac1 to 2d8a8be Compare November 11, 2014 21:13
@davecgh

davecgh commented Dec 11, 2014

Copy link
Copy Markdown
Member Author

I've rebased this to the latest master and updated all go subrepo import paths for their new locations.

@davecgh
davecgh force-pushed the davec_intwaddrmgr branch 4 times, most recently from 6754fc5 to 9f9bd9c Compare January 17, 2015 08:48
@davecgh

davecgh commented Jan 17, 2015

Copy link
Copy Markdown
Member Author

This has been updated to include all of the new paths and rebased accordingly.

@jrick

jrick commented Jan 23, 2015

Copy link
Copy Markdown
Member

Because accounts are created with 0 addresses, but manager.LastExternalAddress returns the next address without error (which is not yet watched or managed), the getaccountaddress RPC is currently broken. To fix, we will need to add Num{Internal,External}Addresses methods to the manager and check for 0 external addresses in the GetAccountAddress handler.

@davecgh

davecgh commented Jan 23, 2015

Copy link
Copy Markdown
Member Author

Another option is to create the first address on the internal and external branches when an account is created.

@davecgh

davecgh commented Jan 30, 2015

Copy link
Copy Markdown
Member Author

This has been updated for the btcscript -> btcd/txscript move and rebased accordingly.

davecgh and others added 3 commits January 31, 2015 23:26
This commit converts the wallet to use the new secure hierarchical
deterministic wallet address manager package as well as the walletdb
package.

The following is an overview of modified functionality:

- The wallet must now be created before starting the executable
- A new flag --create has been added to create the new wallet using wizard
  style question and answer prompts
- Starting the process without an existing wallet will instruct now
  display a message to run it with --create
- Providing the --create flag with an existing wallet will simply show an
  error and return
Previously a runtime.GC was being invoked which forced it to release the
memory as far as the garbage collector is concerned, but the memory was
not released back to the OS immediatley.  This modification allows the
memory to be released immedately since it won't be needed again until the
next wallet unlock.
@jrick

jrick commented Feb 5, 2015

Copy link
Copy Markdown
Member

I've pushed a intwaddrmgr branch to this repo. The keystore->waddrmgr replacement and integration here is in good shape but there are several other components (like txstore -> wtxmgr) that we want to complete before pushing this to master. PRs which depend on intwaddr should be rebased to this branch and submitted as a intwaddrmgr PR (not a PR to master).

#154
#155
#183
#185

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.

3 participants