Commit Graph

7392 Commits

Author SHA1 Message Date
Jude Nelson
dbe1dd78b4 verify that when we reorganize a subdomain's history, that regardless of which zone file contains its updates, we always rebuild its history off of the earliest-discovered name transfer 2018-01-30 17:51:20 -05:00
Jude Nelson
7361eb012e when reorganizing a subdomain's history, make sure that if an earlier transfer gets discovered, we invalidate the subsequent history and build off of the earliest transfer 2018-01-30 17:50:54 -05:00
Jude Nelson
c9732038ed verify that no matter which zone file a subdomain arrives in, we correctly reorganize its history to reflect the earliest valid sequence numbers for each update 2018-01-30 17:50:21 -05:00
Jude Nelson
3d8fb3d44a test that zone files that arrive out of order cause the subdomains' histories to be reorganized internally, selecting the earliest records with a given sequence 2018-01-30 17:49:46 -05:00
Jude Nelson
5e58703099 test that the arrival of multiple subdomain updates with the same sequence number selects the earliest valid one 2018-01-30 17:49:14 -05:00
Jude Nelson
8585237e29 verify that we do not create zone files until the initial zone file that created it arrives. verify that this works when subdomains are updated across domain names 2018-01-30 17:48:48 -05:00
Jude Nelson
33ab09f3ac test subdomain processing works when the initial subdomain records get lost, but subsequent ones arrive. verify that they are not processed until the initial subdomain record is discovered 2018-01-30 17:48:17 -05:00
Jude Nelson
cf06b77bb9 test subdomain db reindexing 2018-01-30 17:48:06 -05:00
Jude Nelson
43c5065478 verify that we cannot accept subdomain creation from names for which we do not have all zone files 2018-01-30 17:47:45 -05:00
Jude Nelson
90a32b7627 test when zone files arrive in different orders, leaving holes in the history. test that this also works when subdomain records are spread across multiple domains 2018-01-30 17:47:22 -05:00
Jude Nelson
4a3b19515e test subdomain processing when some zone files arrive but others do not, leaving holes in the history. 2018-01-30 17:46:56 -05:00
Jude Nelson
6a97e023ec test subdomain processing when zone files arrive in reverse order, and subdomains are spread across multiple domains 2018-01-30 17:46:38 -05:00
Jude Nelson
7ffc0ad97e test subdomain processing when zone files arrive in batches, and subdomain records are on different zone files than those belonging to their stem names 2018-01-30 17:45:53 -05:00
Jude Nelson
cf912947a8 test that we will "discover" zone files even if they're already present 2018-01-30 17:45:33 -05:00
Jude Nelson
8ba80dbd88 add method to reindex subdomains and verify that they are consistent with the subdomain db calculated by discovering zonefiles 2018-01-30 17:44:30 -05:00
Jude Nelson
46e544088d make sure we can reindex from scratch 2018-01-30 17:44:20 -05:00
Jude Nelson
2f8ffca1da make sure we can reindex from scratch 2018-01-30 17:44:09 -05:00
Jude Nelson
643fc62f23 make sure we can reindex from scratch 2018-01-30 17:43:50 -05:00
Jude Nelson
db95a49021 make sure the atlasdb and subdomaindb are preserved on fastsync 2018-01-30 17:43:35 -05:00
Jude Nelson
d8e769577c bugfix: reindex a subdomain across different updates in different names. Also, add the ability to reindex from scratch, and add methods to explicitly clear the subdomain db. Also, add subdomain history query methods 2018-01-30 17:42:49 -05:00
Jude Nelson
d773ce5bf1 add name to subdomain fields; relax required history fields for subdomains 2018-01-30 17:42:21 -05:00
Jude Nelson
e6249729ad on fast-sync, capture the subdomain.db database 2018-01-30 17:42:05 -05:00
Jude Nelson
c2fe7fec55 track first block for subdomains 2018-01-30 17:41:48 -05:00
Jude Nelson
bdcaf5a08d bugfix: have Atlas tell the subdomain indexer when a zonefile arrives 2018-01-30 17:41:30 -05:00
Jude Nelson
f172e0a58a fix up imports 2018-01-30 17:41:15 -05:00
Jude Nelson
ab813e5f87 bugfix: don't try to load a zone file on get_name_record() if there is no value hash 2018-01-30 17:40:58 -05:00
Jude Nelson
b4beab90cc Merge branch 'develop' into feature/blockstackd-subdomain-indexing 2018-01-29 19:13:57 -05:00
Jude Nelson
712a65bc49 Merge branch 'develop' into feature/clean-chainstate 2018-01-29 19:13:41 -05:00
Jude Nelson
79fafe9b32 add some initial subdomain tests, including varying the quantity of subdomain updates and the order in which they arrive 2018-01-29 19:12:21 -05:00
Jude Nelson
8c02cdd25e initialize and shut down blockstackd's main loop using blockstackd's method 2018-01-29 19:11:51 -05:00
Jude Nelson
36485f8a90 use blockstack's libraries for zonefile verification 2018-01-29 19:11:27 -05:00
Jude Nelson
e1c8fef070 version bump to 0.18 2018-01-29 19:11:16 -05:00
Jude Nelson
85f31210c0 make compatible with 0.17.x by falling back to get_name_blockchain_record() if get_name_record() is not defined on the remote server 2018-01-29 19:10:55 -05:00
Jude Nelson
4637d1e0e3 whitespace 2018-01-29 19:10:38 -05:00
Jude Nelson
e0e64b4f6a version bump to 0.18 2018-01-29 19:10:31 -05:00
Jude Nelson
afa58ffc6c add daemonize() and db_query_execute() from blockstack_client 2018-01-29 19:10:13 -05:00
Jude Nelson
9e539d82c4 clean up imports 2018-01-29 19:10:03 -05:00
Jude Nelson
2b3d05aca2 don't calculate a zonefile hash unless we need to 2018-01-29 19:09:51 -05:00
Jude Nelson
07bec9dbbe fix spacing; add test for whether or not a subdomain name is well-formed 2018-01-29 19:09:31 -05:00
Jude Nelson
df19e94ca3 process subdomain-enqueued zone files once per block 2018-01-29 19:09:11 -05:00
Jude Nelson
4afe4ab356 use common db query execution code that handles database locks 2018-01-29 19:08:55 -05:00
Jude Nelson
6a135a035f add support for subdomain DB path, and for checking whether or not subdomains and atlas are enabled 2018-01-29 19:08:37 -05:00
Jude Nelson
bc99b7c3fb add client code for looking up name and subdomain records 2018-01-29 19:08:21 -05:00
Jude Nelson
7fd00dce46 guard access to in-RAM zonefile indexes with a mutex (now that multiple threads can write to it); have Atlas call a "storage callback" each time it processes a zonefile it did not previously have (which we leverage in the subdomain indexer) 2018-01-29 19:07:26 -05:00
Jude Nelson
fcb0555c8a fix whitespacing; add RPC methods for querying subdomain names and name histories; add code for queueing zone files for subdomain indexing 2018-01-29 19:06:49 -05:00
Jude Nelson
344c20f813 initial stab at a server-side subdomain indexer. Atlas and the RPC daemon will both queue up zone files to the subdomain indexer as they arrive, and the indexer will be activated once per block to re-process all subdomains in the names whose zone files arrived. This is based in part on the code from blockstack_client/subdomains.py, as well as subdomain_registrar/. It does not depend on blockstack_client. 2018-01-29 19:05:18 -05:00
Jude Nelson
cbf2b93a86 add schemas from blockstack_client 2018-01-29 19:05:05 -05:00
Jude Nelson
4fd0d45e54 add queue implementation 2018-01-29 19:04:59 -05:00
Aaron Blankstein
3535d4b601 Merge pull request #727 from blockstack/develop-jz-api-wrap
Update API development instructions
2018-01-26 16:17:14 -05:00
Jack Zampolin
f414a0fa13 Update instructions for running in docker 2018-01-26 11:59:41 -08:00