Commit Graph

122 Commits

Author SHA1 Message Date
Jude Nelson
feed3422ee get_namespace_op_state() for getting historic namespace states; on
committing a state transition, include expired namespace op sequences
(this is because the block we're processing is one block later than the
block we used to query properties about the namespace--we need to ensure
that if we have a state-transition on a namespace that occurred on the
last possible block, we still accept it)
2016-09-09 11:17:53 -04:00
Jude Nelson
4802c6638b WIP: use the new epoch system; working on restoring expired
namespace_reveals
2016-09-09 11:16:55 -04:00
Jude Nelson
eb430d4258 WIP: add a notion of a "settings epoch" to the server, where some
settings are only valid for certain block ranges
2016-09-09 11:16:18 -04:00
Jude Nelson
9cd931dcfa print CHECK statements for the time being 2016-09-07 11:10:26 -04:00
Jude Nelson
a3cce7c843 when producing the op sequence on state transition, include expired
names.  This is because the acceptance criteria are predicated on the
current block, whereas the op sequence calculation is predicated on the
next block.
2016-09-07 11:09:25 -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
234903c057 get_name_last_creation_opcode(); better abort debug output 2016-09-05 20:45:27 -04:00
Jude Nelson
f0443a0202 don't need history 2016-09-05 20:45:13 -04:00
Jude Nelson
b9d46bf0e4 remove dead code; better debug statement 2016-09-04 17:22:53 -04:00
Jude Nelson
d42a7614d5 whitespace 2016-09-02 00:21:37 -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
45194de4bf Merge sqlite3's database to develop. Use a sqlite3 database instead of
a flat file.  Preserve the BlockstackDB API, but be a lot more rigorous
about checking invariants that must hold across state-preordering,
state-creating, and state-transitioning.
2016-09-02 00:19:06 -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
Jude Nelson
4a7c1a3b47 merge sqlite3's operation relationship definitions 2016-09-02 00:15:55 -04:00
Jude Nelson
3d8228a914 move database and history verification to one place 2016-09-02 00:14:39 -04:00
Jude Nelson
acb0eb5104 refactoring: move name/namespace validation and pricing to lib/scripts;
move common transaction extraction logic to lib/scripts
2016-09-02 00:13:51 -04:00
Jude Nelson
8e27fc5586 abort on fatal error 2016-08-30 20:23:52 -04:00
Jude Nelson
940d29e14e remove unused code 2016-08-29 17:35:40 -04:00
Jude Nelson
4655830e53 set NUM_CONFIRMATIONS to 0 when testing, so we can get faster results 2016-08-29 17:35:28 -04:00
Jude Nelson
5fd23a8938 make blockstack-server amenable to running in the network simulator 2016-08-26 18:46:41 -04:00
Jude Nelson
d999f1beb7 typo (bug) 2016-08-24 17:42:56 -04:00
Jude Nelson
3a625263e9 add atlas config options 2016-08-24 17:42:38 -04:00
Jude Nelson
89c0fc2572 support atlas = [True|False] under [blockstack] 2016-08-23 11:39:56 -04:00
Jude Nelson
4ac8651741 use correct zonefile cache path; disable update tx check when testing 2016-08-18 18:33:08 -04:00
Jude Nelson
7b69b499cc tweak comments; add get_zonefile_hashes_at() for Atlas node support 2016-08-15 18:20:18 -04:00
Jude Nelson
7cd61e362f remove dead imports; if unit-testing, then set a version directly (won't
be used unless the right envars are set)
2016-08-15 18:19:41 -04:00
Jude Nelson
5e570de5bf remove dead code 2016-08-15 18:19:12 -04:00
Jude Nelson
21285a9d7e remove dead code 2016-08-15 18:19:00 -04:00
Jude Nelson
4b5b72fa77 enforce op_fee formatting quirk; check for absurdly high-value transactions
while testing
2016-08-10 16:07:21 -04:00
Jude Nelson
ccc6f91e5e some things don't have to be considered p2pkh scripts any longer :D 2016-08-06 00:15:45 -04:00
Jude Nelson
4656fe951a CONSENSUS-BREAKING CHANGE: if we can't find the pubkey hex in the script
sig, then set it to "", not None.  This hadn't been a problem before,
because all keys were p2pkh and always had public keys.  With multisig
support, this will no longer be the case.
2016-08-06 00:14:42 -04:00
Jude Nelson
070e9b86de period 2016-08-06 00:14:32 -04:00
Jude Nelson
0006c7b48d remove now-unneeded code 2016-08-06 00:14:07 -04:00
Jude Nelson
162c9174e9 use virtualchain's key logic 2016-08-04 15:43:06 -04:00
Jude Nelson
d86cbee2de use virtualchain's key logic 2016-08-04 15:42:51 -04:00
Jude Nelson
f0e1ad44e9 use virtualchain's key logic (to automatically use testnet); convert
import addresses to testnet addresses if we're in testnet mode.
2016-08-04 15:42:20 -04:00
Jude Nelson
4f27523f9b convert burn address hash to proper address format 2016-08-04 13:50:38 -04:00
Jude Nelson
18aba7382b use virtualchain's bitcoin key classes 2016-08-01 17:35:23 -04:00
Jude Nelson
ae0f59b21b use a different start block if given in the environment variable 2016-08-01 17:35:07 -04:00
Jude Nelson
667bffc4e3 Merge branch 'master' into rc-0.0.14.0 2016-07-27 17:57:45 -04:00
Jude Nelson
225b7e1964 If there is no server_version in the config file, automatically add it
when generating the new config file (#229).  However, don't add it if it
was already present in the config file, or if the config file already
exists (in which case, the appropriate action is to use the version
given, or back up the old config file).
2016-07-27 16:12:28 -04:00
Jude Nelson
ac1a610921 Hard fork: use namespace lifetime multipler to determine expiration 2016-07-27 15:36:14 -04:00
Jude Nelson
182a86a7e7 Hard fork: namespace lifetime multipler 2016-07-27 15:36:03 -04:00
Jude Nelson
bd3edd8997 Expand namespace lifetime by 4x 2016-07-20 10:37:08 -04:00
Jude Nelson
0a7c5996cc get_name_history() should return a dict, keyed by block height 2016-07-18 15:59:00 -04:00
Jude Nelson
a59a62c27c store server version in the config file, and use it to determine whether
or not the config file is obsolete and needs to be regenerated
2016-07-13 15:42:47 -04:00
Jude Nelson
a5d0c1e68f (temporarily) remove get_zonefile_from_peers from the module 2016-07-12 16:34:56 -04:00