Skip to content

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

  • состоят из хэдеров
Clone this wiki locally