Search content
Sort by

Showing 4 of 4 results by victoriobn
Post
Topic
Board Development & Technical Discussion
Re: What happens when non-Segwit transactions are sent to Segwit nodes?
by
victoriobn
on 31/08/2017, 16:25:39 UTC
Got it @achow101

Thanks Wink
Post
Topic
Board Development & Technical Discussion
Re: What happens when non-Segwit transactions are sent to Segwit nodes?
by
victoriobn
on 31/08/2017, 15:00:53 UTC
@achow101,

Currently I see that only about 5% of all tx are segwit tx.

So what happens to the block tx structure?

I mean, 95% non-segwit tx will be in the merkle tree alongside with the 5% segwit tx, right?

Also, only witness data from the 5% of segwit tx will be in the tiny coinbase witness merkle tree? How would it look like?

Thanks again man o/
Post
Topic
Board Development & Technical Discussion
Merits 1 from 1 user
Re: What happens when non-Segwit transactions are sent to Segwit nodes?
by
victoriobn
on 29/08/2017, 00:50:04 UTC
⭐ Merited by ETFbitcoin (1)
@achow101 thanks a lot man!

So, both types of transactions can coexists in Segwit nodes mempool at the same time? They are then broadcasted to other nodes as is?

Just one more question: once a Segwit node receives a non-Segwit transaction, are there instructions like "if Segwit do this || if non-Segwit do that" in order to put it in the mempool?

The same reasoning apply to blocks sent from non-Segwit to Segwit nodes? I ask cause, when sending from a Segwit node, there are instructions that orientate the "block type" to be broadcasted accordingly to the destiny (Segwit or Legacy), as shown bellow:

Code:
if (inv.type == MSG_BLOCK)
     connman.PushMessageWithFlag(pfrom, SERIALIZE_TRANSACTION_NO_WITNESS, NetMsgType::BLOCK, block);
else if (inv.type == MSG_WITNESS_BLOCK)
     connman.PushMessage(pfrom, NetMsgType::BLOCK, block);

Thanks again Smiley
Post
Topic
Board Development & Technical Discussion
Merits 1 from 1 user
What happens when non-Segwit transactions are sent to Segwit nodes?
by
victoriobn
on 28/08/2017, 22:57:41 UTC
⭐ Merited by ETFbitcoin (1)
Hi everyone,

I understand what happens when Segwit nodes broadcasts new transactions to non-Segwit (or legacy) nodes. Putting in a simple way, transactions are transmitted without witness data and is still considered valid to the legacy. Then, legacy validates it, adds to the mempool and broadcasts to all connected nodes.

What I don't understand is the opposite way. What happens when a legacy (or non-Segwit) node sends transactions to Segwit nodes? Segwit nodes understand this "old fashion" transaction? Or it needs to transform it into a Segwit transaction by "rearranging" the witness data before validating it and adding to the mempool?

The same questioning goes to the block when a non-Segwit node broadcasts it to a Segwit node.

Thanks in advance Wink