Commit Graph

76 Commits

Author SHA1 Message Date
Jude Nelson
bc564e14e6 failure to replicate a zonefile will not always have an error message 2017-02-06 15:15:51 -05:00
Jude Nelson
b0d891ee52 fix typo 2017-02-06 15:15:39 -05:00
Jude Nelson
a58418646a need sys.exit 2017-02-06 15:15:28 -05:00
Jude Nelson
9d8cfce7ef it's okay if we don't have a user zone file when searching through it; just return None in these cases. 2017-02-06 15:15:10 -05:00
Jude Nelson
92df065112 small bugfixes 2017-02-06 15:14:59 -05:00
Jude Nelson
983f40ebfe use is_singlesig_hex() for storage keys 2017-02-06 15:14:39 -05:00
Jude Nelson
bea2eac5a2 break apart subsidization logic so we can query the necessary subsidization information without touching the transaction. Will be used to generate externally-signed transactions 2017-02-06 15:14:08 -05:00
Jude Nelson
ee2dab42e2 a single-signature private key bundle can be WIF-encoded or hex-encoded 2017-02-06 15:13:51 -05:00
Jude Nelson
344af97e17 whitespacing 2017-02-06 15:13:43 -05:00
Jude Nelson
10683f6c53 is_singlesig_hex(): is a key a single private key, and hex-encoded 2017-02-06 15:13:27 -05:00
Jude Nelson
7b17a5cdcb rework a few things about inodes and inode data in a data store:
* make sure we check all inode headers before getting an inode, so we know the latest version
* have get_mutable, put_mutable, and delete_mutable update data consistency information across all write-devices
* have get_mutable remember which driver(s) succeeded, so subsequent calls on e.g. inode resolution don't needlessly query stale data
* remember data consistency information by device ID, as well as data ID.
2017-02-06 15:11:30 -05:00
Jude Nelson
bad676e0e2 pass through interactive 2017-02-06 15:05:26 -05:00
Jude Nelson
3682071f2a accept all config defaults if -y is passed and there is no config file 2017-02-06 15:05:00 -05:00
Jude Nelson
d51042066e specifically verify that the data private key is hex-encoded 2017-02-06 15:04:44 -05:00
Jude Nelson
80782f09dd WIP: refactoring and cleaning up transaction-creation logic in preparation for outsourcing tx-signing to external programs via the REST interface 2017-02-06 15:04:17 -05:00
Jude Nelson
ae70608d27 blockstack_server storage driver will *not* replicate zonefiles, since blockstack servers already do so via Atlas protocol 2017-02-06 15:03:51 -05:00
Jude Nelson
dcc5bb4c18 methods for getting, adding, listing, and removing device IDs for multi-device data stores 2017-02-06 15:03:27 -05:00
Jude Nelson
980cc45838 clean up symbols 2017-01-30 01:46:25 -05:00
Jude Nelson
c5e92228d8 do not create-if-absent on getting a zonefile 2017-01-30 01:44:48 -05:00
Jude Nelson
4caa2846ed revamp wallet migration so it has an explicit setup command; support both legacy pre-0.13 wallets as well as 0.13 wallets (with dedicated owner and payment keys but no data key) 2017-01-30 01:44:19 -05:00
Jude Nelson
820cf8fece allow us to remove a public key from a zone file (for testing) 2017-01-30 01:43:59 -05:00
Jude Nelson
312c662b5a do not attempt to extract a blockchain ID from a data ID; instead, make it a separate argument. Also, fix up immutable data hash search API to always return a list or None 2017-01-30 01:43:19 -05:00
Jude Nelson
64c9656f34 include fq_data_id and blockchain_id in mutable data blobs, as well as version in wallets 2017-01-30 01:42:55 -05:00
Jude Nelson
db360d3601 list users from mutable data; use check_storage pragma 2017-01-30 01:42:33 -05:00
Jude Nelson
a0d0ecaf40 proper (re)encoding for data IDs (which now have a device ID component) 2017-01-30 01:42:10 -05:00
Jude Nelson
d574cbca55 clean up profile APIs a bit by removing unneeded arguments 2017-01-30 01:41:53 -05:00
Jude Nelson
bc4384525d add check_storage pragma; fix multiple pragmas per command 2017-01-30 01:41:32 -05:00
Jude Nelson
1eaf94bbf1 revamp data key deduction: we can use the owner key as a data key, but only if it's a single-sig owner key (otherwise, we have no way of extracting a public key from a multisig address) 2017-01-30 01:41:00 -05:00
Jude Nelson
04a6ccf86b revamp mutable data API for multiple devices:
* get_mutable will search for the latest version of a datum across a set of known devices
* put_mutable will include the device ID in the data it replicates
* delete_mutable will delete from all devices
* datastore inodes will rely on their headers to identify the globally-latest version of the inode data
* user lists and private key indexes will track cross-device versioning so that an update from one device will always be processed by the others.
2017-01-30 01:39:26 -05:00
Jude Nelson
f58101fd86 separate out version numbers into separate variables 2017-01-30 01:39:07 -05:00
Jude Nelson
6a38fed4f7 load device IDs 2017-01-30 01:38:53 -05:00
Jude Nelson
c40611d201 revamped storage_setup and associated methods to fix bugs found in testing 2017-01-30 01:38:22 -05:00
Jude Nelson
fa328a482b if a CLI command has check_storage pragma set, then verify that advanced storage has been enabled 2017-01-30 01:37:58 -05:00
Jude Nelson
9d7212039b don't try zonefiles over and over again once replicated 2017-01-30 01:37:36 -05:00
Jude Nelson
5e5b020e22 fix error path when we don't have all row keys 2017-01-30 01:37:09 -05:00
Jude Nelson
515bf29393 make global variables in the disk driver configurable in the config file 2017-01-30 01:36:52 -05:00
Jude Nelson
f41a304330 upgrade blockstack_server driver to deal with mutable data (as opposed to only profiles) 2017-01-30 01:36:33 -05:00
Jude Nelson
94d09c0610 use explicitly-generated fully-qualified data names for apps, since they are not tied to a user's device 2017-01-30 01:36:10 -05:00
Jude Nelson
8ef6dea71b check for storage setup for advanced storage methods; add upgrade_storage command; fix bugs found in testing 2017-01-30 01:35:46 -05:00
Jude Nelson
997ee6373e symbol update 2017-01-23 19:10:23 -05:00
Jude Nelson
ba6e1ac2e5 do not tolerate legacy zone files by default (but leave the option of doing so) 2017-01-23 19:10:00 -05:00
Jude Nelson
c4a13bdbbf require the user to migrate the wallet to its latest supported format before allowing it to be unlocked. move wallet-specific one-time setup to the wallet module 2017-01-23 19:09:24 -05:00
Jude Nelson
ff2c4a6d97 config_path, not config_dir, in load_wallet 2017-01-23 19:08:51 -05:00
Jude Nelson
51509d5c00 better public-key searching in the zone file; only return lists of immutable data hashes 2017-01-23 19:08:34 -05:00
Jude Nelson
1dfbc7142e add ECDSA routines to work on files 2017-01-23 19:08:18 -05:00
Jude Nelson
6e8ecfc263 allow reading with the owner key, but not writing 2017-01-23 19:08:05 -05:00
Jude Nelson
ba8c304388 no longer accept the owner private key's signature on new data 2017-01-23 19:07:48 -05:00
Jude Nelson
e44235cd62 get_mutable: try each data store until we get fresh data; data_setup: refactor and clean up; stop trying to auto-migrate name profiles (since we don't need the profile any longer) 2017-01-23 19:07:00 -05:00
Jude Nelson
7fd0a0c16a backup config file call 2017-01-23 19:05:50 -05:00
Jude Nelson
b999323b0e WIP: one-time system setup to set up your data stores and check that you have a data key set in your zone file 2017-01-23 19:05:27 -05:00