AustEcon / bitsv

BitSV: Bitcoin made easy. Documentation:

Home Page:https://AustEcon.github.io/bitsv

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Upgrade to OP_FALSE OP_RETURN

AustEcon opened this issue · comments

Added as a reminder

I think we should do this next release (i.e. after 0.9.0)

Current plan with this is to do two releases in quick secession, one without and then subsequently one with the OP_FALSE OP_RETURN. Just in case there are services that are not ready to parse upgraded transactions yet... people can in this way pin their version to e.g. 0.9.0 (with all of the other latest updates) until they are ready to progress to 0.10.0

Could you link to something with a bit of a backstory on this? Will make every TX a little bigger, which I'm not very fond of.

Ok, couple related articles:

https://blog.bsv.sh/the-prunability-and-non-permanency-of-your-data-the-case-of-op_return/

https://bitcoinsv.io/2019/07/27/the-return-of-op_return-roadmap-to-genesis-part-4/

Should be pretty straight forward. This shouldn't break anything if we make the change now, right? Guessing it's backwards compatible.

I agree (single line of code change) - easy.

As far as the blockchain and blockexplorers/APIs etc. they have already adopted the change.
I think bico.media has too.

The only thing that might be affected is if some 3rd party services are parsing the 'false return' metadata and are not expecting the extra OP_FALSE as the first byte...

I agree though - we should just make the change and roll it out with all of the latest stuff as one release (rather than doing a "double release")

The todo list to get to next release is:

  • Fix the tests that I broke by changing order of outputs ('false returns' now come as first output always)
  • Add some basic tests for the new Fullnode class (to ensure equivalent signature of functions as with NetworkAPI)
  • Add OP_FALSE

Defer to next release:

  • Integrate Fullnode into the PrivateKey class.
  • Deal with an issue I have had two people contact me about: Using other libraries to create "false return' metadata and then trying to include it in a transaction using bitsv... There's a problem though because bitsv adds 'OP_RETURN' to the beginning but they've already done this so it messes it up for them.

I've done this now and updated tests so will close. I might just cut a new release at this point if you lads are happy with that.