Commit Graph

170 Commits

Author SHA1 Message Date
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
Jude Nelson
49f49cc6a8 detect -p/--password and -y/--yes options 2017-01-23 19:05:09 -05:00
Jude Nelson
33eee60c22 registration now requires a data key 2017-01-23 19:04:56 -05:00
Jude Nelson
37579ccdb6 migrate over to the timestamp-based profile replication protocol 2017-01-23 19:04:36 -05:00
Jude Nelson
07324a20a9 get default password from environment; get default-yes setting from environment; WIP on prompting the user to migrate their wallet and create a data key 2017-01-23 19:04:06 -05:00
Jude Nelson
65b2c83a89 use private key index from shared storage; make some functionality public so we can load user data from the data.py module. 2017-01-18 18:49:41 -05:00
Jude Nelson
0d6f575c19 consolidate ensure_wallet_exists() checks; run data_setup() when we initialize the wallet for the first time; fetch user data from shared storage by default; have data-writing methods return a blockstack:// URL that can be used to read them; add get_data command that resolves a blockstack:// URL to data (regardless of how it is stored). 2017-01-18 18:49:16 -05:00