-
Notifications
You must be signed in to change notification settings - Fork 0
Tech: blockShed, Tx
IPv6 edited this page Sep 10, 2014
·
13 revisions
Общее:
- json-формат транзакций и тп - хешируется текстовое представление, все в массивах
Tx
- версия формата
- txId - хэш от параметров
- должна содержать валидный txUStamp
- привязывается к хэшу блока, который txSpawner считает актуальным рутом
- Первый инпут и аутпут - для txSpawn-ера. Комиссия берется в основном с него же (зависит от txScript), в первый аутпут возвращается весь остаток
- txKriTotal - общая сумма перемещенного (зависит от txScript)
- на инпуты и аутпуты лимитов нет (crowd funding). Первый инпут - txSpawn, остальные должны идти на один и тотже wid (== txSpawn) или redeemWid
- Если итоговая сумма аутпута <= 0 - это делает его дальнейшее использование невозможным
- поле txComission: сумма комиссии должна быть не меньше limitTxMinComission (может быть больше, стимул майнеру включить транзакцию в блок). транзакция сверх минимума по размеру идет с оплатой за "лишний" размер/время
- limitTxMinComission зависит от "старости" UTXO. стимул регулярно объединять и двигать балансы (хорошо для блокчейна). стимул не держать много мелких wId (потери на комиссиях растут)
- input может содержать сигнатуру и пубключ, если подписан. у инпута есть связанный txSpawner (спавнер UTXO транзакции, в которой инпут был аутпутом)
- input должны соответсвовать реальным utxo (включая redeemWid, на него должны быть транзакции)
- поле txScript - либо полный нормализованный текст для redeemWid, либо один из "вшитых" nativeScript
- output-ы могут содержать кроме суммы еще и tag. таким образом транзакции могут передать блоб от кого-то кому-то, владение. tag (кто владеет) можно проверять в redeemWid.
blockShed
- максразмеры транзакций limitMaxTxSize
- максчисло транзакций limitTxPerBlock
- ссылки на предыдущ/следующ блоки
- сортировка транзакций в порядке убывания объема средств (зависит от txScript)
- inputs присутствуют в качестве UTXO (строго один раз)
- timeHash блока реален и соответствует timeHash-ам транзакции (не старше дня)
- blockPScore соответствует параметрам включая отношение к пред/след блокам, txKriTotal
- blockId - хэш от merkleRoot, blockPScore, wId майнера, miningLoot и blockId предыдущего блока. Подбор должен инвалидить все последующие блоки
- в хедере явно должен присутствовать miningLoot и blockComission (раздельно)
- блок подписывается майнером (blockSpawner). mineLoot может уходить или blockSpawner-у или любому разместившему активный mineProposal. blockComission всегда идет blockSpawner-у
- blockComission идет blockSpawner-у отдельной транзакцией
- miningLoot идет майнеру отдельной транзакцией
blockProposal
- состоят из хэдеров