-
Notifications
You must be signed in to change notification settings - Fork 1
Research Ideas
dgisolfi edited this page May 7, 2019
·
1 revision
Block.Data Structure:
- Include zero or more key terms for each transaction.
Block.Header Structure:
- Include a key term hash list (KTHL).
When a block is created (when a group of transactions is saved into a new block as the leaf nodes of a Merkel tree):
- Assemble a list of all distinct key terms.
- Use hash algorithm H to hash each key term in the (distinct) list.
- Save the key term hash list (KTHL) into the new block's header.
- Update (or create if this is the Genesis block) the (separate) Blockchain Index Object (BLO), which is a sorted list of all key terms across the entire blockchain and a list of block IDs associated with each key term.
Searching: (specifically, external searching, where the data being searched cannot fit entirely in memory)
- Supply one or more key terms.
- Hash each key term (with the same hash algorithm H) into a search list (SL).
- Sequential Search the the blockchain for those blocks where {Block.Header.KTHL intersect SL} is not empty, adding those block IDs to a list of resultBlocks. Return resultBlocks.
Querying:
- Supply one or more key terms.
- Hash each key term (with the same hash algorithm H) into a search list (SL).
- Binary Search the Blockchain Index Object (BLO) for each term in SL, adding the block IDs of those found to a list of resultBlocks.
- Return resultBlocks.
Experiments:
- Validity and accuracy. (Does it work?)
- Performance:
- Compare searches of the blockchain without KTHLs to searches with KTHLs and Queries with KTHLs. For each...
- ... measure differences in create time.
- ... measure differences in response time.
- ... measure differences in size.
- Compare searches of the blockchain without KTHLs to searches with KTHLs and Queries with KTHLs. For each...
- Performance:
Possible Enhancements:
- Search: support the use of different hash algorithms in the same blockchain by including the hash algorithm (H) used for that block in Block.Header. Then dynamically hash the search terms with that H. (We could memoize this, and only make new hash versions of the query terms as necessary.)
Transactions are exchanges of "shares of stock" in a self-published book.
Transactions are donations and dispursements.
Two-dimensional Identity Blockchain:
- "Nature" chain "across" with biometric transactions
- "Nurture" chain "down" with event transactions