Commit Graph

703 Commits

Author SHA1 Message Date
Jude Nelson
5aaef0ca88 snapshot the subdomain db queue as well as the subdomain. This fixes a bug whereby a fast-sync'ed node can lose subdomain records because it doesn't know to process a recently-discovered zone file. This happens when a snapshot is taken from a node that just discovered a zone file, but has not yet processed it. This patch fixes this by also including the subdomain DB queue, which incluedes the list of recently-discovered but unprocessed zone files in the snapshot. 2018-10-17 09:27:10 -04:00
Jude Nelson
9f04404eb3 add subdomain DB query for getting subdomain ops processed in a given tx 2018-10-16 11:30:15 -04:00
Jude Nelson
b158bafd98 add definitions for rows in the subdomain table so we can return and validate historic subdomain operations 2018-10-16 11:29:51 -04:00
Jude Nelson
cb2ec5407b add GET /v1/subdomains/{:txid} to get all subdomain operations processed in a given transaction 2018-10-16 11:29:33 -04:00
Jude Nelson
ad76a3d3da add client method to get all subdomain records processed at a given txid 2018-10-16 11:29:13 -04:00
Jude Nelson
6fd1da39de new fast-sync DNS name 2018-10-15 17:10:49 -04:00
Jude Nelson
ae78ad733f fast-sync key rotation 2018-10-12 16:37:13 -04:00
Jude Nelson
f5e6bd15f7 don't even try to decode the zone file on GET /v1/names. It's not necessary. 2018-10-10 13:58:45 -04:00
Jude Nelson
bfb85516bc handle non-standard zonefiles 2018-10-10 13:53:43 -04:00
Jude Nelson
9e29316970 pattern= 2018-10-10 13:46:54 -04:00
Jude Nelson
21a575e958 de-lint 2018-10-10 13:04:03 -04:00
Jude Nelson
930a73aa89 remove unneeded format() 2018-10-10 13:03:51 -04:00
Jude Nelson
4550ee3df7 fall back to 127.0.0.1 if getaddrinfo fails 2018-10-08 13:24:34 -04:00
Jude Nelson
520d3814ce allow using getaddrinfo() to get the Atlas IP address. Pass "<stun>" to request a STUN-determined IP address; pass "<host>" for getaddrinfo(); pass a normal IP address or DNS name for a pre-configured address (affects "atlas_hostname" and "BLOCKSTACK_ATLAS_HOSTNAME") 2018-10-08 11:54:31 -04:00
Jude Nelson
8f944ddd33 merge /v1/prices and /v2/prices -- make the /v2 endpoint return the same information expected by the /v1 endpoint 2018-10-02 23:36:46 -04:00
Jude Nelson
c059c17469 set blockstack atlas hostname (BLOCKSTACK_ATLAS_HOSTNAME) as an environ 2018-10-02 23:35:52 -04:00
Jude Nelson
ccdd7fa0d6 reword comment 2018-09-27 17:52:28 -04:00
Jude Nelson
f03d23aa95 rename *_nameops_* to *_blockstack_ops_* for code clarity 2018-09-27 17:52:20 -04:00
Jude Nelson
132bb957ab get subdomain history in reverse chronological order; add method to test if a zone file hash was created by a subdomain 2018-09-19 18:32:50 -04:00
Jude Nelson
7bd6b849b3 have GET /v1/names/:name/zonefile/:hash use the is_name_zonefile_hash() client method, which is considerably faster (both in absolute terms and asymptotic terms) than the status quo 2018-09-19 18:32:06 -04:00
Jude Nelson
559afc5471 fix bug in getting subdomain history; add method to check if a name created a zone file 2018-09-19 18:31:45 -04:00
Jude Nelson
c929e4fa4a add method to check if a name created a zone file hash; remove dead code 2018-09-19 18:31:27 -04:00
Jude Nelson
1d4c05bcd7 pass through new DB methods 2018-09-19 18:30:58 -04:00
Jude Nelson
40d06dd447 restructure the epoch data so that we no longer need user-defined sqlite3 functions to select the right namespace lifetime and grace period data. instead, bake them directly into the queries. speeds up lots of queries significantly 2018-09-18 18:52:58 -04:00
Jude Nelson
1302140973 expose getinfo as a RESTful endpoint 2018-09-18 18:52:00 -04:00
Jude Nelson
94bcf41cf6 modify the BoundedThreadingMixIn so it will eagerly close client sockets when it has too many outstanding requests. Do some housekeeping so that we can use this in both the backplane RPC server and the API server, and update the relevant integration test to test for this behavior 2018-09-18 17:15:31 -04:00
Jude Nelson
993a8ff68c push back f-day 2018 2018-09-17 18:26:03 -04:00
Jude Nelson
c7c8ea188f use get_name_history_page for getting pages of a name's history. do not rely on start_block or end_block, since we have the power to paginate directly 2018-09-13 16:14:25 -04:00
Aaron Blankstein
ac6dc486f9 add environment variable for overriding atlas_seed_peers setting (BLOCKSTACK_ATLAS_SEEDS) 2018-09-13 07:51:20 -05:00
Jude Nelson
19a1d7f9b3 make API endpoint match master better, except where appropriate (e.g. return 400 instead of 401 and 502 instead of 500 in a few cases) 2018-08-23 15:59:15 -04:00
Jude Nelson
4bbae859fb use the right public key that matches the owner address 2018-08-23 15:58:55 -04:00
Jude Nelson
16d4d131f2 store fast-sync snapshot to ~/.blockstack-server 2018-08-23 15:58:39 -04:00
Jude Nelson
097fc369bd serialize all calls to enqueue zone files 2018-08-06 18:14:16 -04:00
Jude Nelson
66e8edc08f dead comment 2018-08-06 18:14:03 -04:00
Jude Nelson
e808ea9ca3 when synchronizing the atlasdb with the namedb, call the storage callback for each zone file we already have. That way, if a zone file hash is re-announced, it will be processed by the storage callback again (as desired) 2018-08-06 18:12:51 -04:00
Jude Nelson
1b56e1bba2 api tweak: pass the server state to the virtualchain hooks (including the atlas state) 2018-08-06 18:12:29 -04:00
Jude Nelson
0499d3fa68 fix a race condition in the atlas database that can occasionally cause a zone file to not get forwarded to the subdomain system 2018-07-27 15:08:13 -04:00
Jude Nelson
0ed8c393d5 pass through fsync 2018-07-23 19:43:32 -04:00
Jude Nelson
3d577a7aa0 re-store zone files unconditionally (again), so we can recover from corrupt zone files 2018-07-20 00:29:56 -04:00
Jude Nelson
0641feebbe cap the number of zone files we process per block for subdomains 2018-07-19 22:08:35 -04:00
Jude Nelson
ed988897a4 disable durability pragmas in the subdomain db, since if the node crashes we have to restore the subdomain db anyway (2x speed improvement). also, add a 'zonefile_offset' column to the subdomain db that fixes DID creation in the case where the same owner address created multiple subdomains in the same zone file 2018-07-18 18:57:12 -04:00
Jude Nelson
2288672b08 nearly 100x performance improvement if we don't fsync() each time we write a zone file (not strictly necessary for subdomain zone files, but definitely necessary for zone files arriving via Atlas) 2018-07-18 18:56:38 -04:00
Jude Nelson
b55d23f609 also export subdomain db and atlas db (meant mainly for testing) 2018-07-18 18:56:21 -04:00
Jude Nelson
b82d6428ed de-lint 2018-07-06 14:23:36 -04:00
Jude Nelson
58604448fd Merge branch 'master' into develop 2018-07-06 14:08:31 -04:00
Jude Nelson
efbcaccc5a up to 1000 threads (only 1024 file descriptors are available anyway) 2018-07-06 14:06:58 -04:00
Jude Nelson
01ef6b022b de-lint; version bump 2018-07-06 14:04:09 -04:00
Jude Nelson
a1709b3a2f reduce the multiplier for the maximum rpc size to 150 (really can get away with more like 133, but let's play it safe--it's only 0.6 MB) 2018-07-05 23:41:39 -04:00
Jude Nelson
800f82911d make the max RPC length equal to the expected amount of space 100 fully-loaded zone files take when encoded 2018-07-05 21:42:26 -04:00
Jude Nelson
8358c1d783 add a bounded threading mixin to the RPC server that allows it to have up to a maximum number of outstanding threads handling requests. serialize all RPC access so we don't introduce database contention or corruption. make the maximum number of RPC threads overridable in the environment. 2018-07-05 17:24:30 -04:00