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

Changes for 1.1.0 -> 2.0.0 Deployment strategy decisions #126

Merged
merged 6 commits into from May 31, 2019

Conversation

@yeastplume
Copy link
Member

commented May 30, 2019

1.1.0 Changes resulting from dev meetings over the past couple of days. All points are outlined below, but checklist for this PR only applies to 1.1.0.

Also, in addition to checklist below:

  • Clean some compiler warnings during test
  • Change misleading output saying that slate was sent when it was actually just being output to file
  • Update API doctests to reflect signature format change and output features change grin-side
  • Grin-wallet v1.1.0 will default slate output to SlateV0, and ensure that users who want to output the newest SlateV2 format must add -v 2 to their command. (Note that invoice transactions still output V2, as earlier wallets won't know what to do with them anyhow)
  • Grin-wallet v1.1.0 will contain both the V1 and V2 Owner/Foreign APIs. The V2 APIs use the V2 slate by default.
  • SlateV2 in grin-wallet 1.1.0 will contain a block_header_version field that indicates what version of the Grin Protocol it is intended for.
  • Grin-wallet 1.1.0 will fill the block_header_version field as 1 (consensus)
  • Grin-wallet 1.1.0 will halt if it detects the current block is later than the hardfork block (hardcoded rule).
  • Grin-wallet 1.1.0 will produce bulletproofs in the older recovery format
  • Grin-wallet 1.1.0 will not attempt to post transactions to a node if the node reported height is >= the hardfork height (effectively covered by 'halt' point above)

Grin-wallet 2.0.0 will fill the block_header_version field of the slate as 2
Grin-wallet 2.0.0 will refuse to process slates with a block_header_version of 1.0
Grin-wallet 2.0.0 will not post transactions to a grin node reporting a current block height < HF height
Grin-wallet/Grin node v2.0.0 will have a node API tweak to ensure grin-wallet 1.1.0 cannot communicate with grin-node 2.0.0
Grin-wallet 2.0.0 will turn off the V1 owner/foreign APIs, and use the V2 APIs only
Grin-wallet 2.0.0 will drop support for SlateV0 and SlateV1, and default to using SlateV2 only.
Grin-wallet 2.0.0 will only produce bulletproofs in the newer recovery format

yeastplume added 6 commits May 30, 2019

@yeastplume yeastplume changed the title [WIP] Changes for 1.1.0 -> 2.0.0 Deployment strategy decisions Changes for 1.1.0 -> 2.0.0 Deployment strategy decisions May 30, 2019

quentinlesceller added a commit to blockcypher/libgrin that referenced this pull request May 30, 2019

@yeastplume yeastplume merged commit b1738e3 into mimblewimble:master May 31, 2019

9 checks passed

mimblewimble.grin-wallet Build #20190530.5 succeeded
Details
mimblewimble.grin-wallet (linux config/libwallet/api) linux config/libwallet/api succeeded
Details
mimblewimble.grin-wallet (linux controller/all) linux controller/all succeeded
Details
mimblewimble.grin-wallet (linux impls) linux impls succeeded
Details
mimblewimble.grin-wallet (linux release) linux release succeeded
Details
mimblewimble.grin-wallet (macos release) macos release succeeded
Details
mimblewimble.grin-wallet (macos test) macos test succeeded
Details
mimblewimble.grin-wallet (windows release) windows release succeeded
Details
mimblewimble.grin-wallet (windows test) windows test succeeded
Details
// TODO: Very temporary code to obsolete grin wallet for the first hard fork
// All tx operations call get_chain_height as a first order of business,
// so this is the most non-intrusive place to put this
match node_client.clone().chain_height() {

This comment has been minimized.

Copy link
@garyyu

garyyu Jun 1, 2019

Member

There's no node_api_secret parameter on line 46 when creating a new node_client (None there), here the chain_height() calling will fail if node API need secret.

garyyu added a commit to gottstech/grin-wallet that referenced this pull request Jun 10, 2019
merge from upstream (#22)
* V2 slate versioning enablement (mimblewimble#85)

* fix for command line listener port override

* reduce parameter query size

* Add slate versioning

* rustfmt

* bump version number

* Add tests for slate version conversion

* rustfmt

* Updates and test addition based on bdap's review

* rustfmt

* fix mimblewimble#88 (mimblewimble#89)

* Add `check_version` function to Foreign API (mimblewimble#87)

* move api deser types into separate types mod

* rustfmt

* missing types file

* make all exports from libwallet more explicit

* rustfmt

* add version check function to foreign api

* rustfmt

* change check_version return value to result, for consistency

* Revert "Merge branch 'master' into master"

This reverts commit a63f2c7, reversing
changes made to d774272.

* [WIP] Invoiced Transactions API Support (mimblewimble#90)

* basic invoiced tx working

* rustfmt

* teardown

* rustfmt

* rename, new struct for invoice args, begin to add new functions to RPC apis

* rustfmt

* add fns to rpc api

* rustfmt

* owner api functions RPC documentation in place

* rustfmt

* doctests for new invoicing functions

* rustfmt

* test fixes

* update documentation and doctests

* rustfmt

* invoice testing verification of tx log output

* rustfmt

* Add Azure Pipelines to grin-wallet

* Remove cursive and fix task names

* Do not crash on empty terminal

* Add LLVM

* Possible MSFT pipeline bug with . task

* Change connection name

* Command line implementation of invoice commands (mimblewimble#96)

* add issue_invoice_tx command

* rustfmt

* add first pass at process_invoice command

* start of process_invoice fn

* rustfmt

* rename issue invoice and process invoice to invoice and pay

* add prompting and display information to pay invoice command

* rustfmt

* support invoice transactions in finalize command

* rustfmt

* Add Azure Pipelines badge

* Remove duplicate LMDB wallet backend code (mimblewimble#101)

* remove leftover wallet lmdb code

* rustfmt

* Simplify slate (de)serialization (mimblewimble#103)

* Simplify slate (de)serialization

* rustfmt

* Cleanup

* Fix slate version tests

* Another fix for tests

* Fix slate deser in http adapter

* docstring update and provide a bit of a readme (mimblewimble#104)

* Updates for 1.1.0-beta.3 release (mimblewimble#106)

* bump version number and build from tag for beta 3 release

* update for latest grin tag

* Fix keybase adapter (mimblewimble#107)

* fix version string in yml (mimblewimble#113)

* fix: invoice transaction pay need update the slate height (mimblewimble#115)

* Remove double json encoding on http response (mimblewimble#114)

* Add participant ID as part of key to stored private transaction context data (mimblewimble#117)

* add participant_id to saved tranasction context data

* rustfmt?

* change participant id for command line pay command

* change the api repository to grin-wallet instead of grin (mimblewimble#118)

* Test (mimblewimble#119)

* Remove Travis.yml (mimblewimble#124)

* Version Info API Function tweak, remove 'min_compat_version' from slate (mimblewimble#123)

* change slate version function to return list of supported slate formats

* rustfmt

* remove min_compat_version

* Changes for 1.1.0 -> 2.0.0 Deployment strategy decisions (mimblewimble#126)

* make slate v0 the default for regular sends

* add block_header_version to slate

* update doc tests for latest grin version

* rustfmt

* HACF if HF height detected

* rustfmt

* version bump for beta.4

* cargo.lock crate version update, and remove 3 build warning from cargo 1.35.0

* Fix for API secret on node API startup (mimblewimble#131)

* fix for api_secret when reading node height

* rustfmt

* remove macro export

* trigger ci again

* More helpful error message on recover when `wallet_data` dir doesn't exist (mimblewimble#134)

* make recover error message when wallet doesn't exist more helpful

* rustfmt

* fixes and version update for final 1.0.0 build

* fixes and version update for final 1.0.0 build

* rustfmt

* get back the travis-ci scripts

* fix the test
garyyu added a commit to gottstech/grin-wallet that referenced this pull request Jun 25, 2019
Merge upstream for 2.0.0 HF (#24)
* V2 slate versioning enablement (mimblewimble#85)

* fix for command line listener port override

* reduce parameter query size

* Add slate versioning

* rustfmt

* bump version number

* Add tests for slate version conversion

* rustfmt

* Updates and test addition based on bdap's review

* rustfmt

* fix mimblewimble#88 (mimblewimble#89)

* Add `check_version` function to Foreign API (mimblewimble#87)

* move api deser types into separate types mod

* rustfmt

* missing types file

* make all exports from libwallet more explicit

* rustfmt

* add version check function to foreign api

* rustfmt

* change check_version return value to result, for consistency

* Revert "Merge branch 'master' into master"

This reverts commit a63f2c7, reversing
changes made to d774272.

* [WIP] Invoiced Transactions API Support (mimblewimble#90)

* basic invoiced tx working

* rustfmt

* teardown

* rustfmt

* rename, new struct for invoice args, begin to add new functions to RPC apis

* rustfmt

* add fns to rpc api

* rustfmt

* owner api functions RPC documentation in place

* rustfmt

* doctests for new invoicing functions

* rustfmt

* test fixes

* update documentation and doctests

* rustfmt

* invoice testing verification of tx log output

* rustfmt

* Add Azure Pipelines to grin-wallet

* Remove cursive and fix task names

* Do not crash on empty terminal

* Add LLVM

* Possible MSFT pipeline bug with . task

* Change connection name

* Command line implementation of invoice commands (mimblewimble#96)

* add issue_invoice_tx command

* rustfmt

* add first pass at process_invoice command

* start of process_invoice fn

* rustfmt

* rename issue invoice and process invoice to invoice and pay

* add prompting and display information to pay invoice command

* rustfmt

* support invoice transactions in finalize command

* rustfmt

* Add Azure Pipelines badge

* Remove duplicate LMDB wallet backend code (mimblewimble#101)

* remove leftover wallet lmdb code

* rustfmt

* Simplify slate (de)serialization (mimblewimble#103)

* Simplify slate (de)serialization

* rustfmt

* Cleanup

* Fix slate version tests

* Another fix for tests

* Fix slate deser in http adapter

* docstring update and provide a bit of a readme (mimblewimble#104)

* Updates for 1.1.0-beta.3 release (mimblewimble#106)

* bump version number and build from tag for beta 3 release

* update for latest grin tag

* Fix keybase adapter (mimblewimble#107)

* fix version string in yml (mimblewimble#113)

* fix: invoice transaction pay need update the slate height (mimblewimble#115)

* Remove double json encoding on http response (mimblewimble#114)

* Add participant ID as part of key to stored private transaction context data (mimblewimble#117)

* add participant_id to saved tranasction context data

* rustfmt?

* change participant id for command line pay command

* change the api repository to grin-wallet instead of grin (mimblewimble#118)

* Test (mimblewimble#119)

* Remove Travis.yml (mimblewimble#124)

* Version Info API Function tweak, remove 'min_compat_version' from slate (mimblewimble#123)

* change slate version function to return list of supported slate formats

* rustfmt

* remove min_compat_version

* Changes for 1.1.0 -> 2.0.0 Deployment strategy decisions (mimblewimble#126)

* make slate v0 the default for regular sends

* add block_header_version to slate

* update doc tests for latest grin version

* rustfmt

* HACF if HF height detected

* rustfmt

* version bump for beta.4

* cargo.lock crate version update, and remove 3 build warning from cargo 1.35.0

* Fix for API secret on node API startup (mimblewimble#131)

* fix for api_secret when reading node height

* rustfmt

* remove macro export

* trigger ci again

* More helpful error message on recover when `wallet_data` dir doesn't exist (mimblewimble#134)

* make recover error message when wallet doesn't exist more helpful

* rustfmt

* fixes and version update for final 1.0.0 build

* fixes and version update for final 1.0.0 build

* create 2.0.0 branch

* V0/V1 Slate Removal + Grin Header Version Bump (mimblewimble#140)

* Remove V0 and V1 Slates from Wallet

* rustfmt

* V1 API + V2 wallet to wallet impl (mimblewimble#144)

* remove v1 API

* rustfmt

* convert http adapter to use V2 api

* rustfmt

* V2 API conversion Pt2 - Check version (mimblewimble#146)

* call check_version on wallet before http send

* rustfmt

* Support new Bulletproof rewind scheme (mimblewimble#122)

* Restore with LegacyProofBuilder

* Switch to ProofBuilder at HF block

* Switch proof builder for coinbase outputs at hard fork

* Use valid_header_version to switch proof builder

* Fix compilation errors

* Use legacy proof builder for AutomatedTesting chain type

* Add macro to avoid duplicate code

* Read version info from server, react accordingly (mimblewimble#154)

* read and parse version, bump hf

* rustfmt

* add foreign api middleware check

* rustfmt

* add middleware checks

* rustfmt

* add check for incoming pre-hf slates

* api tests

* Add double rewind period (mimblewimble#155)

* Add double rewind period

* Simplify restore

* Fix comment

* bump imported version for beta release

@yeastplume yeastplume deleted the yeastplume:treaty_of_yeast branch Jul 8, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.