minimal broadcasting frame length in a CSMA/CD protocol

i’m unsure about the following question, would appreciate your assistance with it:

in a CSMA/CD network with a cable length of L, and propagation speed T, with no need of repeaters(the signal is not decreasing): is it possible to decide the minimal length of broadcasting frame that can be broadcasted in the channel?

this is what i think: $ L_{min} = 2 * \frac{Max \ \ Length}{propagation \ \ speed} * RATE$ however, we don’t have the rate, so i don’t see how it is possible to overcome this and calculate $ L_{min}$

can it be represented just as a function of T and L? i don’t see how, but would very much seeing how it is possible to represent $ L_{min}$ using only T and L as defined(propagation speed and length of the cable).

thank you very much for helping

NBitcoin BCash broadcasting transaction error 16: mandatory-script-verify-flag-failed (signature must be zero for failed check(multi)sig operation)

I am using NBitcoin library for Bitcoin Cash (BCash). I have a P2SH transaction that I am trying to spend but broadcasting my resulting signed raw tx to the network gives me an error 16: mandatory-script-verify-flag-failed (signature must be zero for failed check(multi)sig operation)

This is how i created the address that received the TX:

Network Network => BCash.Instance.Testnet;  public string GetReceiveAddr(uint index) {       Mnemonic mnemonic = new Mnemonic(this.Wallet.Mnemonic, Wordlist.English);       ExtKey masterPriv = mnemonic.DeriveExtKey(this.Wallet.Password);       ExtPubKey masterPub = masterPriv.Neuter();        BitcoinAddress addr = masterPub.Derive(this.Wallet.ReceiveChain).Derive(index).ScriptPubKey.Hash.GetAddress(this.Network);           return addr.ToString(); } 

To this address I have received the below tx:

{   "hex": "02000000014235fe143004011e387a0e9f88e44c90b6cb84c4d3acb30e73214639aab91625000000006a473044022056fe585e8c79441c491c15ca0be9181cb79eea0bbf6f0971fef50d652130e1790220757f32c237289ea846027b9796e33fd97fbb6df6484969800e977dc531b9b483412103c346eee77a77a8d3e073dacc0532ca7a5b9747bc06d88bf091cac9f4bc8bb792ffffffff02021c9bcf050000001976a91436d2f27bbd826a86db1e93618ce3de89ef33169388ac809698000000000017a9148024f2cc52373aef482b343bc69b83e6bc031a9c8700000000",   "txid": "93f7c14688324b0ec296f18aef09a4c42bc2143f6d8bdb8179b31318335d0e8e",   "hash": "93f7c14688324b0ec296f18aef09a4c42bc2143f6d8bdb8179b31318335d0e8e",   "size": 223,   "version": 2,   "locktime": 0,   "vin": [     {       "txid": "2516b9aa394621730eb3acd3c484cbb6904ce4889f0e7a381e01043014fe3542",       "vout": 0,       "scriptSig": {         "asm": "3044022056fe585e8c79441c491c15ca0be9181cb79eea0bbf6f0971fef50d652130e1790220757f32c237289ea846027b9796e33fd97fbb6df6484969800e977dc531b9b483[ALL|FORKID] 03c346eee77a77a8d3e073dacc0532ca7a5b9747bc06d88bf091cac9f4bc8bb792",         "hex": "473044022056fe585e8c79441c491c15ca0be9181cb79eea0bbf6f0971fef50d652130e1790220757f32c237289ea846027b9796e33fd97fbb6df6484969800e977dc531b9b483412103c346eee77a77a8d3e073dacc0532ca7a5b9747bc06d88bf091cac9f4bc8bb792"       },       "sequence": 4294967295     }   ],   "vout": [     {       "value": 249.57885442,       "n": 0,       "scriptPubKey": {         "asm": "OP_DUP OP_HASH160 36d2f27bbd826a86db1e93618ce3de89ef331693 OP_EQUALVERIFY OP_CHECKSIG",         "hex": "76a91436d2f27bbd826a86db1e93618ce3de89ef33169388ac",         "reqSigs": 1,         "type": "pubkeyhash",         "addresses": [           "bchtest:qqmd9unmhkpx4pkmr6fkrr8rm6y77vckjvqe8aey35"         ]       }     },     {       "value": 0.1,       "n": 1,       "scriptPubKey": {         "asm": "OP_HASH160 8024f2cc52373aef482b343bc69b83e6bc031a9c OP_EQUAL",         "hex": "a9148024f2cc52373aef482b343bc69b83e6bc031a9c87",         "reqSigs": 1,         "type": "scripthash",         "addresses": [           "bchtest:pzqzfukv2gmn4m6g9v6rh35ms0ntcqc6nsakgt38f8"         ]       }     }   ],   "blockhash": "000000006e5de0f297f981bed44fb7cb9dba8bfe6b9133aa3ca551bd61ccf93f",   "confirmations": 1283,   "time": 1551712050,   "blocktime": 1551712050 } 

I am trying to spend the n=1 out of this tx.

Due to the nature of my project, I am parsing the JSON of the above tx and creating the coins to spend manually using the code below:

// values from above tx

outAmt = 0.1

scriptPubKeyASM = OP_HASH160 8024f2cc52373aef482b343bc69b83e6bc031a9c OP_EQUAL

txId = “93f7c14688324b0ec296f18aef09a4c42bc2143f6d8bdb8179b31318335d0e8e”

outN = 1

Mnemonic mnemonic = new Mnemonic(this.Wallet.Mnemonic, Wordlist.English); ExtKey masterPriv = mnemonic.DeriveExtKey(this.Wallet.Password); ExtPubKey masterPub = masterPriv.Neuter(); var receivalPrivKey = masterPriv.Derive(this.Wallet.ReceiveChain).Derive(i);  Money txAmt = Money.Parse(outAmt); Script script = new Script(scriptPubKeyASM); TxOut txOut = new TxOut(txAmt, script); OutPoint outPoint = new OutPoint(uint256.Parse(txId), outN); Coin unspent = new Coin(outPoint, txOut).ToScriptCoin(receivalPrivKey.PrivateKey.ScriptPubKey); unspentCoins.Add(unspent); 

Next I get the change scriptPubKey and create and sign the Transaction

// get change addr ExtPubKey changePub = masterPub.Derive(this.Wallet.ChangeChain).Derive(this.Wallet.NextChangeIndex); Script changeScriptPubKey = changePub.ScriptPubKey;   // create TX TransactionBuilder builder = this.Network.CreateTransactionBuilder(); Transaction signedTx = builder                 .AddCoins(coinsToSpend) // coinsToSpend here is the only unspent coin from above                 .AddKeys(signingKeys.ToArray()) // signingKeys in this case contains only the masterPriv value from above                 .Send(toAddress, amountToSend) // amt to send i use 0.05                 .SubtractFees()                 .SetChange(changeScriptPubKey)                 .SendEstimatedFees(new FeeRate(fee)) // fee is usually around 6500~ satoshi                 .BuildTransaction(true); 

signedTx.Verify() returns true. After this I do signedTx.ToHex() to get the raw transaction and attempt to broadcast the result to the network, but the broadcast fails with the error 16: mandatory-script-verify-flag-failed (signature must be zero for failed check(multi)sig operation)

  1. The exact same code worked perfectly fine for BTC and LTC.
  2. I am aware that BCash only works with P2SH addresses and am using such addresses
  3. I have tired generating an unsigned transaction the same way and signing it using the bitcoin-cli from Bitcoin ABC and broadcasting the result worked fine, which leads me to believe there is an issue with the signing only
  4. I am on the latest version of NBitcoin and NBitcoin.Altcoins to date (4.1.1.86 and 1.0.1.38 accordingly)

Please help, I do understand from researching online for a tremendous amount of time, that there are people who have managed to get BCash signing to work, therefore I am pretty sure that there is a logical error in the way I build the TX or addresses, but I am unable to find it. All the help is greatly appreciated. Thank you.

Adding a raw transaction to the wallet after broadcasting

I am creating a raw transaction and successfully broadcasting it. I am pulling the unspent outputs to use as inputs from listunspent command.

The problem is that it doesn’t seem like the listunspent command knows about the transaction.

Some of the outputs that I added to the raw transaction, signed, and then broadcast still show unspent even though running listunspent on the target address successfully shows that the transaction was successful and are a balance is unspent there.

Is this intended behavior or is there a way to “import” a raw transaction to the wallet? (or is it already being done and I am missing it?)