Jude Nelson
|
111ec0dfa2
|
revamp our story for dealing with multiple types of burn chains -- unfortunately, since rust lacks higher-kinded types, we have to have a lot of type parameters to encode all the specifics of blockchain indexing
|
2019-01-29 18:44:22 -05:00 |
|
Jude Nelson
|
f88e11d9aa
|
revamp IPC story for block parsing and downloading -- instead of using a "pipeline", we'll directly implement a block parser and block downloader trait
|
2019-01-29 18:43:50 -05:00 |
|
Jude Nelson
|
c774f1aacc
|
disable code for now
|
2019-01-27 18:25:28 -05:00 |
|
Jude Nelson
|
1fe0c0ad77
|
WIP: beginnings of a "main loop" that builds up the blockchain
|
2019-01-27 18:25:14 -05:00 |
|
Jude Nelson
|
d1aab4379a
|
stub for stacks blockchain state
|
2019-01-27 18:25:06 -05:00 |
|
Jude Nelson
|
34cbb358e0
|
this module now points to both the burn chain state and the stacks chain state
|
2019-01-27 18:24:51 -05:00 |
|
Jude Nelson
|
7e18832c3b
|
this directory has moved to src/chainstate/burn/operations
|
2019-01-27 18:24:31 -05:00 |
|
Jude Nelson
|
88ba930a7f
|
clean up trait definitions for blockstack burn operations so they all take address and public key type parameters, and the compiler can assign them impls
|
2019-01-27 18:23:59 -05:00 |
|
Jude Nelson
|
1a57c08a2e
|
this file now contains all our burn database types
|
2019-01-27 18:23:38 -05:00 |
|
Jude Nelson
|
c388cb4f19
|
flesh out more impls for data we stuff into the db; move to a burn db-specific folder
|
2019-01-27 18:22:58 -05:00 |
|
Jude Nelson
|
53637cc162
|
move burndb.rs to a burn-specific db dir; add code for snapshotting blocks and calculating consensus hashes; add code for processing parsed blocks, classifying their transactions, checking them, and committing them.
|
2019-01-27 18:21:59 -05:00 |
|
Jude Nelson
|
b58d6420c9
|
do some reorganization; adjust imports accordingly. also, add an error type for this module
|
2019-01-27 18:21:26 -05:00 |
|
Jude Nelson
|
9116f6711e
|
clean up imports; more error types
|
2019-01-27 18:21:00 -05:00 |
|
Jude Nelson
|
78ea465b09
|
extend indexer trait to deal with reorgs and to fetch headers and blocks
|
2019-01-27 18:20:42 -05:00 |
|
Jude Nelson
|
2987a23889
|
API sync with new message handler trait
|
2019-01-27 18:20:29 -05:00 |
|
Jude Nelson
|
fe995996ad
|
rework refs to messages in the network communication so that message handlers *consume* messages, and make it so we use Arc<...> for messages (so we can pass them between threads without having to copy them)
|
2019-01-27 18:19:50 -05:00 |
|
Jude Nelson
|
ceee097ab1
|
clean up imports
|
2019-01-27 18:19:41 -05:00 |
|
Jude Nelson
|
14b79a65ca
|
clean up imports
|
2019-01-27 18:19:33 -05:00 |
|
Jude Nelson
|
1a462cab7a
|
WIP: fleshed out indexer implementation to check for burn chain reorgs, fetch headers, fetch blocks, parse blocks, and (soon) feed them to the burn db
|
2019-01-27 18:18:59 -05:00 |
|
Jude Nelson
|
b61781f258
|
clean up imports; add pipeline processor trait impls to the block downloader and block parser so we can chain them together
|
2019-01-27 18:18:31 -05:00 |
|
Jude Nelson
|
90a2af22e1
|
clean up imports; add constructor for a burn header hash that takes a bitcoin header hash
|
2019-01-27 18:18:01 -05:00 |
|
Jude Nelson
|
5097644efd
|
add to_string() and from_string() trait impls
|
2019-01-27 18:17:46 -05:00 |
|
Jude Nelson
|
4bc6a96f39
|
LeaderBlockCommitOp must indicate an epoch number so the parser will know whether or not it arrived on time (per SIP 001); also, make it so this op has a type parameter for both the address and public key so the rust compiler can assign impls when classifying transactions
|
2019-01-27 18:16:59 -05:00 |
|
Jude Nelson
|
1733658ccc
|
clean up imports; add both an address and public key type parameter so the rust compiler can figure out how to match impls when classifying and checking transactions in the burndb code
|
2019-01-27 18:16:14 -05:00 |
|
Jude Nelson
|
da507017a9
|
clean up imports; force UserBurnSupportOp to be parameterized by both an address and public key type in order to make it possible for the rust compiler to correctly assign impls when processing transactions
|
2019-01-27 18:15:33 -05:00 |
|
Jude Nelson
|
c9fe11d61b
|
add util error types in preparation for pipeline implementations
|
2019-01-27 18:15:09 -05:00 |
|
Jude Nelson
|
a391f13488
|
clean up imports
|
2019-01-27 18:14:58 -05:00 |
|
Jude Nelson
|
45eccd3bc0
|
remove unused macro
|
2019-01-27 18:14:48 -05:00 |
|
Jude Nelson
|
4bc68c31e2
|
move Hash160 to src/util/hash.rs
|
2019-01-27 18:14:32 -05:00 |
|
Jude Nelson
|
4df9a5eeea
|
flesh out pipeline traits and impls
|
2019-01-27 18:14:13 -05:00 |
|
Jude Nelson
|
b650eb1bd7
|
clean up imports and warnings
|
2019-01-27 18:13:40 -05:00 |
|
Jude Nelson
|
733e078091
|
add a RowOrder trait that is used to force objects stored in the DB to describe the order in which their column fields should be SELECT'ed
|
2019-01-17 18:48:42 -05:00 |
|
Jude Nelson
|
f162465d05
|
change location of BitcoinNetworkType
|
2019-01-17 18:35:14 -05:00 |
|
Jude Nelson
|
e2714cb664
|
add FromRow trait to allow a uniform way of loading a particular (custom) data type from a Sqlite3 Row
|
2019-01-17 18:34:48 -05:00 |
|
Jude Nelson
|
6bfc549f15
|
denormalize the burnchain DB a little to avoid a JOIN; implement From trait to instantiate history rows from individual burn chain operations; implement helpers to insert and select rows of burn chain operations and convert them to and from database rows; implement basic DB tests
|
2019-01-17 18:33:45 -05:00 |
|
Jude Nelson
|
565ab06208
|
use new location of BitcoinNetworkType
|
2019-01-17 18:33:19 -05:00 |
|
Jude Nelson
|
f81d003205
|
BitcoinNetworkType is now a mod-level enum
|
2019-01-17 18:33:04 -05:00 |
|
Jude Nelson
|
4974ad431a
|
serde is broken in the rust-secp256k1 module, so implement custom (de)serializer methods for Secp256k1PublicKey
|
2019-01-17 18:32:36 -05:00 |
|
Jude Nelson
|
c659082e68
|
BitcoinNetworkType is now mod-level
|
2019-01-17 18:32:22 -05:00 |
|
Jude Nelson
|
4044de0d4f
|
update location of BitcoinNetworkType
|
2019-01-17 18:32:05 -05:00 |
|
Jude Nelson
|
4e7f7d7d3b
|
test BurnchainTxInput<BitcoinPublicKey> (de)serialization with custom serializers for Secp256k1PublicKey. Also, update new location of BitcoinNetworkType
|
2019-01-17 18:31:29 -05:00 |
|
Jude Nelson
|
c55c7e38c1
|
change location of BitcoinNetworkType
|
2019-01-17 18:31:10 -05:00 |
|
Jude Nelson
|
987f15b7bd
|
need serde_json for serializing burnchain inputs
|
2019-01-15 18:59:19 -05:00 |
|
Jude Nelson
|
01a7e18d33
|
WIP: add methods to insert entries into each of the principle tables in the burn db
|
2019-01-15 18:59:03 -05:00 |
|
Jude Nelson
|
3f0f0366d4
|
add method to serialize a VRF public key and to check that it is a valid ed25519 public key
|
2019-01-15 18:58:41 -05:00 |
|
Jude Nelson
|
b6ffc8475f
|
add to_hex() for byte strings
|
2019-01-15 18:58:34 -05:00 |
|
Jude Nelson
|
2f34307fb8
|
add tests for all burn-chain transaction formats; update consensus hash to 20 bytes
|
2019-01-15 18:58:14 -05:00 |
|
Jude Nelson
|
b505d488fa
|
make consensus hashes 20 bytes -- they'll be a ripemd160 in the implementation
|
2019-01-15 18:57:47 -05:00 |
|
Jude Nelson
|
6cc579787b
|
add serialize/deserialize traits; make vtxindex a u32 so it serializes to sqlite3
|
2019-01-15 18:57:28 -05:00 |
|
Jude Nelson
|
3599c1e416
|
add serialize/deserialize auto-derived traits
|
2019-01-15 18:57:10 -05:00 |
|