Update Friday, May 18th, 2018
Theme is the same as last week, plenty of work continuing on the wallet refactoring and library creation:
https://github.com/mimblewimble/grin/pull/1061 was integrated earlier in the week, and went a long way towards putting all of the bits of functionality that comprise a wallet into the right places. There’s a full description in the issue of what changed, so I won’t repeat it here.
With that in place, I’ve moved on to part 3, and spending time really refining what the transaction workflow should look like. This phase is about chiselling away at the API to try to get it into the most flexible and re-usable state possible, and I’m starting to like the results… the form it’s moving toward should make it far easier to support all of the transaction workflows we’ve talked about (including carrier pigeon,) as well as support future models such as multi-party, multi-sig, etc. Again, there’s a lot more detail in the issue, so I invite you to look there if you want to know further details.
Once thing I’ve done is started using the term transaction ‘Slate’ to describe something that holds all of the semi-public data needed to complete a transaction. The idea here is the slate is passed around between all parties involved, each one filling in their information until there’s enough info to finalise the transaction. How it’s passed around doesn’t matter (http or avian carrier), just that everyone adds their inputs, outputs and information correctly during the appropriate round. Once all parties have completed their rounds, anyone can finalise the transaction and post it. The slate doesn’t care who the sender or receiver is, or indeed how many parties are involved. In any case, I think using a term other than ‘Transaction’ or ‘PartialTransaction’ to describe this chunk of data makes for less ambiguity and will hopefully make future discussions clearer.
Still a lot of work to go, but it’s starting to go faster and easier as the pieces move into place and the remaining tasks become more obvious. Once I’m happy with how the aggsig workflow looks, I’ll move on to tightening up the other pieces and hopefully we’ll have a decent wallet library foundation to build on.
One last thing, if you’re in the London area and haven’t signed up for this yet, what’s wrong with you?
Look forward to seeing everyone there next week!