-
Notifications
You must be signed in to change notification settings - Fork 118
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
Use blocktime to specify when an item in the spec takes effect #260
Comments
Because blocktime can be just as sketchy (or maybe even worse). For On Tue, Sep 23, 2014 at 6:53 AM, Marv Schneider notifications@github.com
|
Block time is ambigious, because timestamps do not necessarily appear in order and Bitcoin time might as well go backwards - within some range. The block height on the other hand is guarantueed to be +1 each time (reorganizations aside). This fuzziness is actually the reason why I'd prefer setting the deadline of a crowdsale in terms of block height as well and @dacoinminster already hinted the "painful" way how it's handled at the moment. Related: https://groups.google.com/a/mastercoin.org/d/msg/dev/33f03j5g05M/PaGgfg6x4OsJ |
Using block number requires last minute updating of the spec and any code that's based on it. Two suggestions:
|
1 sounds fine @zathras-crypto / @faizkhan00 / @m21 should probably decide how complex 2 is vs it's utility |
For the most part they are documented Marv, see this link for the exact code defines that specify the active block height and active transaction types (note that 999999 is basically a way to say 'disabled in mainnet' - Transactions are always enabled in Testnet and Regtest mode) https://github.com/mastercoin-MSC/mastercore/blob/0.0.7/src/mastercore.h#L52-L95
|
@faizkhan00: this is not sufficient imho. I mean.. even Michael assumed tx 51 v1 "has been live for months" until zathras unveiled the implementation hasn't even started. (edit: but that aside: there is also a difference between tx n version 0 and version 1 in some cases which is not covered by this list) It would be neat, if there were a detailed overview of:
Or similar... once that's done, the spec could be cleaned. Especially tx 51 is a chaos right now, because it's not even clear which parts belong to v0 and v1 (imho) and I still have no clue, how a proper v1 transaction would look like, see: #249. And also very related: Final goal: |
In addition to the tables by Faiz here's the one that actually attempts to deal with V0 vs V1 logic: Note the "TODO" -- I haven't reworked it yet, not sure if the spec got it all easily shown somewhere. :) Reporting/logging what is supported is easy to do (dump the above 2-3 tables into the log each time we run, etc.). |
On BlockTime vs BlockNumber I am 100% for BlockNumber as it's very deterministic, does not roll back, can be reasonably estimated, etc. |
Ah, this list is more clear. Only flaw:
v1 is not implemented - or maybe it's a bastardized (literally, not meant as offense ;) version of v0 and v1. The spec is currently unclear about this point and if I'm not mistaken, the following changes were made:
Re: block height: +1 I once suggested - for the sake of keeping the timestamp - to mirror the behavior of nLockTime:
|
That's what I had in mind. The code reports what tx's it supports when it starts. |
@marv Now that we have the OLE process, once an OLE gets final approval, an "effective at block height" field should be set in the OLE header. |
@marvgmail @dexX7 @achamely @CraigSellars I think we should close this issue. |
Using a block number as we do now is imprecise and it requires some last minute estimation to try to get close to the desired time. If we're shooting for a time why use a block number?
Using blocktime eliminates the error window and it can be set far in advance. It's also easier for humans to remember a timestamp rather than a blocknumber. I believe bitcoin client code uses blocktime for this purpose.
The text was updated successfully, but these errors were encountered: