this is the only reason, i was involed in bitcoin so late.
at first boot, it took so much time on my slow connection., i gave up, on running bitcoin-core and even minining bitcoins, back in 2012.
i can see for wallet purpose , it needs to scan the entire blockchain, to find uxto., but for non wallet functionality, i dont see why this cant be done.
i mean when running in prune mode, only last few blocks are stored in disk, same can be done . at the initial start, but for non wallet things.
|
|
|
looks good., i am more interested in Replace-by-fee control in the GUI (Push low fees to high fees if you are late)
|
|
|
i am confused here.,
how can nodes accept full tx ? doesnt protocol says, it sends hash only at first and upon asking, its sends full tx ?
i am checking that python code now.
thanks
A node can and will accept an unsolicited transaction, i.e. it will receive and handle a transaction that was not announced to it with an inv message. There is no need to send an inv message to announce the txid first, just that it is more efficient to do so instead of just sending a tx. it means, i can push tx directly, instead of sending hash and waiting for it to reply. damn., if its not too much to ask, can you direct me to code, which sends tx directly. to peers. ? from bitcoin- core src. so far i have found this . static void RelayTransaction(const CTransaction& tx, CConnman& connman) { CInv inv(MSG_TX, tx.GetHash()); connman.ForEachNode([&inv](CNode* pnode) { pnode->PushInventory(inv); }); } but it send hash first. thanks ------------------------------------------------------------------------------------------------- edit1 : void PushInventory(const CInv& inv) { LOCK(cs_inventory); if (inv.type == MSG_TX) { if (!filterInventoryKnown.contains(inv.hash)) { setInventoryTxToSend.insert(inv.hash); } } else if (inv.type == MSG_BLOCK) { vInventoryBlockToSend.push_back(inv.hash); } } so its sending hash, now looking in to NetMsgType
|
|
|
i am confused here., how can nodes accept full tx ? doesnt protocol says, it sends hash only at first and upon asking, its sends full tx ? i am checking that python code now. thanks
|
|
|
is this possible ?
i think not, but i need confirmation.
i have created a raw transaction and i have tx in hex. can i push the tx hex to other peers without adding it in my mempool ?
but as per the bitcoin core source on , we only send tx hash hex, to peers , and if they dont have it, then we send full tx hex.
something like this.
but i need more details.
i am planning to create tx and just feed it to the peers. if that is possible.
thanks
|
|
|
idk if this is still managed., but i tried building it from source and when i started it
i got
"Failed to parse -udpport option, not starting FIBRE"
even though i had
udpport=8444,8555,8666
in my config file.
i even checked logs for details and found above message.
|
|
|
just checked with nmap. Port 8333 is available, but nmap say it's filtered. PORT STATE SERVICE 22/tcp open ssh 8333/tcp filtered unknown
So I'm not sure if it's possible to connect directly to this node. i dont recall where i read, but i read something about dns seeds. maybe in bitcoin souorce code., ill have to check there. at the initial start of bitcoind when there are no known nodes available., bitcoind gets its nodes list from predefined nodes ips and domain names , from source code. i have to look in to it.
|
|
|
i am trying to add relay nodes. which will relay my transactions to their peers. i have added them specifically in my bitcoin.conf file addnode=<ip> whitelist=<ip>
when i start bitcoin, i can see they are being added in the bitcoind. when i do i get this { "id": 1, "addr": "<ip>", "addrbind": "<myip>:<myport>", "services": "0000000000000001", "relaytxes": true, "lastsend": 1505396154, "lastrecv": 1505396157, "bytessent": 2486374, "bytesrecv": 8588359, "conntime": 1505379187, "timeoffset": 0, "pingtime": 0.035034, "minping": 0.034549, "version": 70014, "subver": "/Satoshi:0.14.2/UASF-Segwit:1.0(BIP148)/", "inbound": false, "addnode": true, "startingheight": 485189, "banscore": 11700, "synced_headers": 485220, "synced_blocks": 485189, "inflight": [ ], "whitelisted": false, "bytessent_per_msg": { "addr": 7225, "blocktxn": 53866, "cmpctblock": 238678, "feefilter": 32, "getaddr": 24, "getdata": 616729, "getheaders": 1021, "inv": 181292, "ping": 4544, "reject": 127148, "sendcmpct": 66, "sendheaders": 24, "tx": 1255574, "verack": 24, "version": 127 }, "bytesrecv_per_msg": { "addr": 25, "block": 4038, "cmpctblock": 100094, "getblocktxn": 452, "getdata": 107726, "headers": 106, "inv": 3699833, "notfound": 38558, "pong": 4544, "sendcmpct": 33, "tx": 4632787, "verack": 24, "version": 139 } } see above it shows why is that ? how can i make sure., i accept and relat tx from that node ? thanks how can i make it whitelisted : true ------------------------------------------------------------------------------------------------------------------------- edit1 : from https://en.bitcoin.it/wiki/Running_Bitcoin-whitelistrelay Accept relayed transactions received from whitelisted peers even when not relaying transactions (default: 1) -whitelistforcerelay Force relay of transactions from whitelisted peers even if they violate local relay policy (default: 1)
both of them are defaults to 1 i.e. on. so what is causing this ? thanks
|
|
|
Try to ping the address and use the IP address for the addnode. ping public.us-west.relay.mattcorallo.com
ResultPING v4.rn-sea1.fibre.bitcoinrelaynetwork.org ( 107.191.119.43) 56(84) bytes of data. Port 8333 is open for this IP, so it looks like that a full node is listening there. i tried ping and got the same ip., but when i checked for open port it says the port is closed. i tried bitnodes.21.co and http://www.yougetsignal.com/tools/open-ports/ to check if port is open. thanks. ---------------------------------------------------------------------------------------------------------- edit1 : i did bitcoin-cli addnode 107.191.119.43 add
and later when i tried bitcoin-cli getpeerinfo | grep 107.191.119.43
i dont see it being added. i even did cat ~/.bitcoin/debug.log | grep 107.191.119.43
but no entries of it in debug either., so imho the port isnt open. so back to square one.
|
|
|
i know i can add nodes by using command bitcoin-cli addnode <ip:port> add
but there are some services which provide domain names i.e. ref: http://bitcoinrelaynetwork.org/e.g. node public.us-west.relay.mattcorallo.com how can i add such node ? i have tried adding it like this bitcoin-cli addnode public.us-west.relay.mattcorallo.com add but, how can i make sure, i am connected to it ? i tried doing bitcoin-cli getpeerinfo | grep public.us-west.relay.mattcorallo.com and bitcoin-cli getpeerinfo | grep mattcorallo but i dont see it being added. can anyone help me with this ? thanks for your time.
|
|
|
Third party sites to (re-)submit a raw, signed transaction to the network; sometimes referred to as "pushtx": ... https://btc.blockr.io/tx/push... Currently defunct: You should probably put blockr.io into the defunct section... the entire website (block explorer + API) has been taken down and just automatically redirects through to coinbase now... right now , i am just making list, i have not checked each and every link, ill make post with updated list with only active links. thanks
|
|
|
Stop Bitcoind. Delete the mempool.dat file. Restart bitcoind.
okie., did that, looks like it gets created again. so it is used to store mempool entries at the time of stopping bitcoind. thanks
|
|
|
i am using latest bitcoin from github.
i want to clean my mempool .
how can i do this ?
i dont mind restarting bitcoind to clean the mempool.
does deleting mempool.dat again, creates mempool.dat ? or it will screw up my setup ?
so that when i start bitcoind, then it will start to fill up again.
thanks
|
|
|
Since CTxMempool uses a map, adding a duplicate entry would result in the new entry overwriting the original entry, but since they are duplicate, nothing would actually be changed. However that should not happen since addUnchecked is only used by AcceptToMemoryPoolWorker (which is an extension of AcceptToMemoryPool) which will do all of the checks for accepting a transaction such as making sure that we haven't already added the transaction to our mempool as well as all other transaction validity checks.
thank you, found in function AcceptToMemoryPoolWorker https://github.com/bitcoin/bitcoin/blob/master/src/validation.cpp#L446on here https://github.com/bitcoin/bitcoin/blob/master/src/validation.cpp#L480 // is it already in the memory pool? if (pool.exists(hash)) { return state.Invalid(false, REJECT_DUPLICATE, "txn-already-in-mempool"); } it rejects tx if its already in mempool. thanks
|
|
|
Hi, I have been thinking about investing a sum of money into bitcoin, so I have been reading about its vulnerabilities. As I understand, blockchain sometimes gives repeated R-values which makes some bitcoin wallets vulnerable to hacks. I wanted to find a tool to scan for such vulnerability, but seem to find none. I found R-scan, unfortunately it does not run under Windows, and I tried to run it in pythonanywhere, but to no success. Is there a tool to do this in Windows? Is there a tool to do this for the whole blockchain, so there is some output script like this http://www.want2pay.com/bad_randoms_bitcoin.html ? Please help, I want to make sure I can search for the vulnerability myself, instead of waiting for someone else to post it when its too late. Thanks in advance for your help! can you provide link to R-scan ? so i can test it ? thanks
|
|
|
from https://github.com/bitcoin/bitcoin/blob/master/src/txmempool.cpp#L360i am trying to understand function. bool CTxMemPool::addUnchecked(const uint256& hash, const CTxMemPoolEntry &entry, setEntries &setAncestors, bool validFeeEstimate) { NotifyEntryAdded(entry.GetSharedTx()); // Add to memory pool without checking anything. // Used by AcceptToMemoryPool(), which DOES do // all the appropriate checks. LOCK(cs); indexed_transaction_set::iterator newit = mapTx.insert(entry).first; mapLinks.insert(make_pair(newit, TxLinks()));
// Update transaction for any feeDelta created by PrioritiseTransaction // TODO: refactor so that the fee delta is calculated before inserting // into mapTx. std::map<uint256, CAmount>::const_iterator pos = mapDeltas.find(hash); if (pos != mapDeltas.end()) { const CAmount &delta = pos->second; if (delta) { mapTx.modify(newit, update_fee_delta(delta)); } }
// Update cachedInnerUsage to include contained transaction's usage. // (When we update the entry for in-mempool parents, memory usage will be // further updated.) cachedInnerUsage += entry.DynamicMemoryUsage();
const CTransaction& tx = newit->GetTx(); std::set<uint256> setParentTransactions; for (unsigned int i = 0; i < tx.vin.size(); i++) { mapNextTx.insert(std::make_pair(&tx.vin[i].prevout, &tx)); setParentTransactions.insert(tx.vin[i].prevout.hash); } // Don't bother worrying about child transactions of this one. // Normal case of a new transaction arriving is that there can't be any // children, because such children would be orphans. // An exception to that is if a transaction enters that used to be in a block. // In that case, our disconnect block logic will call UpdateTransactionsFromBlock // to clean up the mess we're leaving here.
// Update ancestors with information about this tx for (const uint256 &phash : setParentTransactions) { txiter pit = mapTx.find(phash); if (pit != mapTx.end()) { UpdateParent(newit, pit, true); } } UpdateAncestorsOf(true, newit, setAncestors); UpdateEntryForAncestors(newit, setAncestors);
nTransactionsUpdated++; totalTxSize += entry.GetTxSize(); if (minerPolicyEstimator) {minerPolicyEstimator->processTransaction(entry, validFeeEstimate);}
vTxHashes.emplace_back(tx.GetWitnessHash(), newit); newit->vTxHashesIdx = vTxHashes.size() - 1;
return true; }
lets say we already have a tx hash in our mempool, will add the already available tx hash in mempool again ? or it will discard it ? thanks for your time.
|
|
|
hi all., i just wanted to know is it just me or everybody else, before august 1st i was connected to 60+ nodes but after 1st august, i can't get more than 23 nodes to connect to my client. here is how mine is showing. its been up and running from last 24 hours. [root@btc]# bitcoin-cli getinfo { "deprecation-warning": "WARNING: getinfo is deprecated and will be fully removed in 0.16. Projects should transition to using getblockchaininfo, getnetworkinfo, and getwalletinfo before upgrading to 0.16", "version": 149900, "protocolversion": 70015, "walletversion": 139900, "balance": 0.00000000, "blocks": 483638, "timeoffset": 0, "connections": 23, <====== THIS IS WHAT I AM LOOKING AT "proxy": "", "difficulty": 888171856257.3206, "testnet": false, "keypoololdest": 1502287213, "keypoolsize": 1999, "paytxfee": 0.00000000, "relayfee": 0.00001000, "errors": "This is a pre-release test build - use at your own risk - do not use for mining or merchant applications" } i think i have screwed something up, while moving from one server to another, while compiling bitcoin. it would be great if you guys could share yours node connected count. and tell me for how long your bitcoin-core is running. thanks I don't think it is just your node. My VPS node (which is up 24/7) used to have around 95 connections but now has around 55. idk what went wrong., i am trying older builds to find if its restricted in newr builds. thanks
|
|
|
hi all., i just wanted to know is it just me or everybody else, before august 1st i was connected to 60+ nodes but after 1st august, i can't get more than 23 nodes to connect to my client. here is how mine is showing. its been up and running from last 24 hours. [root@btc]# bitcoin-cli getinfo { "deprecation-warning": "WARNING: getinfo is deprecated and will be fully removed in 0.16. Projects should transition to using getblockchaininfo, getnetworkinfo, and getwalletinfo before upgrading to 0.16", "version": 149900, "protocolversion": 70015, "walletversion": 139900, "balance": 0.00000000, "blocks": 483638, "timeoffset": 0, "connections": 23, <====== THIS IS WHAT I AM LOOKING AT "proxy": "", "difficulty": 888171856257.3206, "testnet": false, "keypoololdest": 1502287213, "keypoolsize": 1999, "paytxfee": 0.00000000, "relayfee": 0.00001000, "errors": "This is a pre-release test build - use at your own risk - do not use for mining or merchant applications" } i think i have screwed something up, while moving from one server to another, while compiling bitcoin. it would be great if you guys could share yours node connected count. and tell me for how long your bitcoin-core is running. thanks
|
|
|
|