Commit Graph

59 Commits

Author SHA1 Message Date
Jude Nelson
effc2d6db3 a NAME_REGISTRATION/NAME_RENEWAL's burn address must go to a v2 namespace's address for the first year (fee collection period) of its existence, starting from its reveal block. after that, fees go to the null burn address (to discourage squatting or gratuitous namespace registration) 2017-10-04 00:03:54 -04:00
Jude Nelson
5d0bcbce19 plug DoS problem whereby a namespace can be preordered by a non-p2pkh script (this is allowed; this fix stops nodes from crashing when it happens) 2017-10-03 13:07:20 -04:00
Jude Nelson
b8f340c3a1 preserve sender_pubkey across renewal 2017-10-01 14:37:45 -04:00
Jude Nelson
4e579bdbed fix debug output on burn fee 2017-09-29 18:09:58 -04:00
Jude Nelson
65147a144e print exceptions in test mode 2017-09-29 16:03:27 -04:00
Jude Nelson
5842fed87a op_fee can be None, if it is not given 2017-09-29 00:49:38 -04:00
Jude Nelson
7145bcfee8 don't allow transfer if we're in the renewal grace period 2017-09-29 00:49:37 -04:00
Jude Nelson
1860edb8f6 don't allow update if we're in the renewal grace period 2017-09-29 00:49:37 -04:00
Jude Nelson
f74e14c033 don't allow revoke if we're in the name renewal grace period 2017-09-29 00:49:37 -04:00
Jude Nelson
6de96721b0 don't clear out sender_pubkey 2017-09-29 00:49:37 -04:00
Jude Nelson
0451d81d92 log renewal fee 2017-09-29 00:49:36 -04:00
Jude Nelson
ba6379df18 After F-day 2017, a NAME_REGISTRATION and NAME_RENEWAL may correspond to a namespace that requires the user pay the namespace creator (a version-2 namespace). Enforce this at the consensus level---a NAME_REGISTRATION and NAME_RENEWAL are only valid in a version-2 namespace if the user paid the namespace creator 2017-09-29 00:49:35 -04:00
Jude Nelson
9caa75e0fd extract burn address and outputs from the transaction; remember the burn address to validate NAME_REGISTRATIONs and NAME_RENEWALs that follow 2017-09-29 00:49:33 -04:00
Jude Nelson
b3246f9b35 after F-day 2017, allow version-2 namespaces (which allow pay-to-creator for name registration). Update the consensus logic to (1) check for version-2 if we're in the relevant epoch, and if so, require users to send their name fees to the NAMESPACE_PREORDER's payment address 2017-09-29 00:49:32 -04:00
Jude Nelson
97cd614921 back up burn address on NAMESPACE_REVEAL; obtain burn address from outputs; obtain fee from outputs 2017-09-29 00:49:31 -04:00
Jude Nelson
28b2e49c37 allow register to include a zone file hash; allow renew to include a zone file hash and a new recipient. 2017-09-29 00:49:26 -04:00
Aaron Blankstein
c878b62c8a /usr/bin/env python -> python2. our code is not python3 friendly, we should specify that 2017-08-17 13:40:01 -04:00
Jude Nelson
23e8e69009 TODO notes 2017-06-15 11:19:07 -04:00
Jude Nelson
15bcb452ee clean up imports 2017-04-27 19:23:15 -04:00
Jude Nelson
eb06526aa4 use generic virtualchain multisig script check 2017-04-20 17:37:17 -04:00
Jude Nelson
9c12126d95 use generic virtualchain multisig script check 2017-04-20 17:37:02 -04:00
Jude Nelson
ff07b90bd1 use keylib base58 instead of pybitcoin base58 2017-04-20 17:36:49 -04:00
Jude Nelson
1a07180041 remove dead code 2017-04-17 15:38:59 -04:00
Jude Nelson
62965d4f00 remove dead code 2017-04-12 17:10:15 -04:00
Jude Nelson
c5ab587523 return false on mismatched sender (backport from master) 2017-03-09 20:02:49 -05:00
Jude Nelson
99810d512a use the announcement API in the blockstack client 2017-01-30 01:34:43 -05:00
Jude Nelson
66360657c5 remove dead code 2016-10-27 00:03:43 -04:00
Jude Nelson
707e6a9086 move SNV consensus restoration logic to the client 2016-10-24 03:22:47 -04:00
Jude Nelson
22a84cbb78 track 'last_create_op' in the db 2016-10-24 03:22:28 -04:00
Jude Nelson
527e46ad6d use the new 'last_creation_op' column instead of (expensively)
calculating it from the DB.
2016-10-24 03:21:47 -04:00
Jude Nelson
6a2639bc49 do not allow a name to be registered to a p2sh script until the multisig
support activates (this is to keep 0.14 consistent with 0.13 until then)
2016-10-04 18:16:50 -04:00
Jude Nelson
488d1ad1d3 do not allow a transfer sender to be a p2sh script until the multisig
support activates
2016-10-04 18:16:18 -04:00
Jude Nelson
46abc13e9a improve error-path log messages a bit 2016-09-28 20:26:18 -04:00
Jude Nelson
22bdb8045c whitespace 2016-09-25 23:47:38 -04:00
Jude Nelson
c4cf324e1b register/renew can mutate op_fee, since the epoch can change between
preorder/register or register/renew.  Also, when considering name
prices, use the preorder's block number (i.e. the epoch the preorder
occurred in determines the price to pay, not the register).  For
renewals, however, use the current block height to determine the fee.
2016-09-12 17:59:35 -04:00
Jude Nelson
41c22f172a remove dead code 2016-09-12 17:59:29 -04:00
Jude Nelson
f6d81c332d back up op_fee, since it can change due to an epoch change 2016-09-12 17:59:14 -04:00
Jude Nelson
8e7c78f3d3 remove dead code 2016-09-09 16:55:30 -04:00
Jude Nelson
84266a9f2e if re-revealing an expired namespace of the same name, reconstruct the
appropriate history snapshot first (i.e. the previous revealed state)
2016-09-09 16:55:01 -04:00
Jude Nelson
c6c8c9a4f9 API sync 2016-09-09 11:20:16 -04:00
Jude Nelson
f094d3cb1d WIP: make expired namespace_reveals restorable 2016-09-09 11:19:56 -04:00
Jude Nelson
0143b7cb85 new price_name() API sync 2016-09-09 11:19:38 -04:00
Jude Nelson
60e82529fe better history index notation in debug output 2016-09-09 11:19:23 -04:00
Jude Nelson
c4abd401e1 pass both the working db and untrusted db when calculating extra
consensus fields (since the untrusted db might not have the data we
need when verifying).  Also, when calculating consensus quirks, check if
a name operation is the first NAME_IMPORT for a name in order to handle
the NAME_IMPORT fee quirk correctly.
2016-09-07 11:08:06 -04:00
Jude Nelson
fefce0537d log which code path we take 2016-09-05 20:46:24 -04:00
Jude Nelson
1952b935e4 preserve the *first* preorder name hash when restoring consensus extras 2016-09-05 20:46:00 -04:00
Jude Nelson
51617feead log the SNV quirks as we apply them 2016-09-05 20:45:45 -04:00
Jude Nelson
b9d46bf0e4 remove dead code; better debug statement 2016-09-04 17:22:53 -04:00
Jude Nelson
692319b263 Merge sqlite3 into develop. Mostly refactoring: move operation
parsing, validation, and consensus logic into the individual operation's
.py file.
2016-09-02 00:20:24 -04:00
Jude Nelson
c93390ef0e sqlite3 merger: add much more rigorous operation-checking:
* identify and preserve invariant properties that must hold across name
state-transitions (like no-collisions, or limiting fields that can
change).
* add history validation
* identify consensus-bearing fields, and how each state-creation or
state-transition may affect them (and add runtime checks to see that
they only affect the fields we say they will)
* add decorators that we can apply to name operations to enforce the
above.
2016-09-02 00:16:36 -04:00