text:
Transaction unconfirmed after almost 2 day,please help
I tried to send a bitcoin transfer monday afternoon and it is still unconfirmed. Paid the default fee and the transaction has said high priority since i sent it.Can anyone help me get this confirmed? Would greatly appreciate any help!
The transaction is:
https://blockchain.info/tx/907e8e446585be642bf85d89b15a55e306fe9868ed713c0cec84781761bcbd7a

Don't rely on blockchain.info notion of 'priority', it is horribly outdated.

Your transaction's fee is pretty high and its size is small. It usually should get confirmed right in the next block.
The reason it's still unconfirmed is that there currently is a very big number of unconfirmed transactions. Around 57'000. Usually, it's somewhere around 1'000 to 3'000.
This already happened a few months ago. The mempool back then was 8 MB big. Right now, it's 35 to 43 MB big (depending on who you ask) and a block being mined (which statistically happens every 10 minutes) can only reduce it by about 1 MB.
Inconveniently for you, the size of the mempool has skyrocketed since you made the transaction due increased frequency of transactions.

(Source)
If it continues like this, the blocksize limit will likely be increased so a block can decrease the mempool by more than 1 MB.
Your fee (0.5907 mBTC/kB) is above the current mempool average (0.2871 mBTC/kB) but there are a lot of transactions with higher fees than yours. Because of this, the miners will pick other transactions instead of yours.
The only thing you can do if you really need the transaction to go through fast is to send it again with a higher fee, this time.

Thanks for the reply,how would i be able to send it again?

This is a transaction replacement. Usually, wallets won't let you spend the same coins again (and you want to spend the same ones again so only one of the transactions can eventually get through!) which is why you have to re-import the wallet's data file into the wallet software. The details depend on the wallet you're using but it has been discussed for different wallets on this StackExchange site and all over the internet.

Would you recommend doing this or is it just easier to wait it out? And again thank you

You won't lose anything but the time you spend doing it and maybe (only if the second one will be the one to become confirmed) the difference in fee you choose. As long as the second transaction isn't confirmed, the first one is still valid and miners may chose either one. If a miner comes across the second one while already knowing about the first one, they may drop the first one in favor of the second one and then process it faster than they would've processed the first one because the second one has a higher fee. So, yes. If the transaction was important enough for me, I'd do it.

The transaction was returned but I lost £20 any idea why this could of happend?

What do you mean by "returned"? Do you mean the equivalent of £20 in BTC (around 34 mBTC)?

The pending transaction was cancelled but out of the £150 equivalent of Btc only around £130 was returned to my wallet balance

That can't be unless you made a mistake and spent those £20 on a way too high fee. If you create a transaction, you dictate exactly what will happen (which money goes wheres) should it get confirmed.

Resent the transaction last night but when I checked today it showed that it was double spent and sent this afternoon,could this be a problem?

https://blockchain.info/tx/907e8e446585be642bf85d89b15a55e306fe9868ed713c0cec84781761bcbd7a

The 2 transactions are ab09bbb5e6b59077901b5c4f4dc24404004ab549062e3912f9c40b99dd3c6ec0 and 907e8e446585be642bf85d89b15a55e306fe9868ed713c0cec84781761bcbd7a. Both use 3 inputs and share 2 of them. 13z9cr9MeJuLqBDkudNHD2nrQ3qf2nrEW1 is your target address. One of the transactions uses a change address, the other one doesn't. One of them sends  0.2494729 BTC to the target address, the other one  0.24889752 BTC. The difference is 0.57538 mBTC which is equal to £0.34. One of the transactions sends 0.01631248 BTC (£9.66) to a (probably) change address. This change address is yours.

What you wanted to do is a double spend. The only way to make a tx invalid is to have any of its inputs spent already by a different tx (which has to make it into the blockchain first (the other one won't be able to after the first one made it)). What blockchain.info tells you by this message is that it has detected that there are 2 transactions spending (in part) the same funds. This means that if you're the receiver of the transaction, you should be skeptical you'll get the money until the transaction which goes to your address is confirmed. It's the same target address, here, though.

I didn't try to double spend it I sent the transaction again and this is what came up,would this impact how long it will take to be confirmed?

The idea was make the transaction again but with a higher fee, decreasing the time it takes for it to become confirmed.


text:
Physical objects on the blockchain as data?
I have been wondering about the company that stores diamonds via the Blockchain using it as a ledger to follow each diamond individually from where it is mined through the world. Each diamond has a unique 'passport' and so it is impossible for it to get lost or for it to enter the black market. Can anybody explain to me how this works in terms of how the information about the diamond is broken into categories in order for it to be fully described. Also, does a physical 'passport' travel with each diamond everywhere? Are these stored on a specific blockchain designed particularly for the diamonds?
Thanks

I'm voting to close this question as off-topic because the question is about representing parts of the real in digital data, not about Bitcoin. You should probably ask this question on a diamond news site as they probably know what exactly is being stored to describe diamonds individually.

Could you please provide a link to whatever source you've read to learn about the diamond tracking?

I can't tell you about any specific diamond-tracking company, but I can address the complications with tracking any physical good on a blockchain.
In order to track a physical object on a blockchain, that physical object needs to be able to reduce to a small piece of data, such as a hash digest.  With digital goods, this is easily accomplished with a cryptographic hash function, but physical objects present some difficulties.  You'd need a method of reliably and repeatably coming up with the same reduced value from the same physical object.  If a diamond were "hashed" in London today by one jeweler, you would need to be able to expect that if it were hashed again by a different jeweler in New York in 20 years, the result would be the same.  Not just close, but exactly the same.  This is probably where the physical "passport" you speak of fits in, but in that case, you are relying on the chain of custody of the passport.  The blockchain would be tracking the passport, not the diamond.  How the passport is identified to belong to a certain diamond is something you'd have to ask a jeweler.
You would also need to trust whatever layer is built on top of the blockchain, and that they are following the rules they claim to be following.  In this case, it would be whomever issues these passports.  For example, what would happen if the passport-issuing authority issues two passports for the same diamond?  The passports could be traded separately on the blockchain, but there is still only a single physical good...but with two blockchain-legitimate claims to it.  Also, who is in charge of enforcing the ownership of the physical good?  If I have the diamond, but you have the blockchain token, who is going to physically take the diamond from me and give it to you?
It might be wise to pose these questions to whichever company is claiming to be able to track ownership of a physical good by using a blockchain.

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

sort: votes


text:
Are Bitcoin and Ethereum really de-centralized? Or is federated a better term?
By looking at the bitcoin and ethereum mining pool hashrate distribution I feel that only 5-10 relevant full nodes exist. So it's more like a federated system among those.
Am I seeing something wrong here?

Yes Bitcoin and Ethereum are still decentralized. What happened is it got to risky to mine solo so miners banded together to have a better chance of getting blocks. I suppose you could say that Bitcoin or Ethereum could be federated but the fact that these pools are competing against each other destroys that idea.
 Federated means (with reference to a number of states or organizations) form or be formed into a single centralized unit, within which each state or organization keeps some internal autonomy.* According to the definition of federated I would rather say that each mining pool is a federation of miners in itself. But with all these different federations involved it is still decentralized system because not one of these federations control more than 50% of the hashrate.
*Definition from Google Dictionary

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
What should be less than the target?
When I go to BlockExplorer and observe the hash of block 514441's header I see it to be:
0000000000000000004ec916884d8b2cd3dc0e80ab199cc23e528e7dc10fafc6
However when I obtain the header of block 514441 from:
https://blockchain.info/rawblock/0000000000000000004ec916884d8b2cd3dc0e80ab199cc23e528e7dc10fafc6?format=hex
and I double hash the first 640 bits using Java's SHA256 implementation I get the following (they are byte reversals of each other):
c6 af 0f c1 7d 8e 52 3e c2 9c 19 ab 80 0e dc d3 2c 8b 4d 88 16 c9 4e 00 00 00 00 00 00 00 00 00
Which is the actual block header hash that has to be less than the target value?

Which is the actual block header hash that has to be less than the target value?

Both.
SHA256 produces an array of 32 bytes as output. Bitcoin treats those 32 bytes as a 256-bit LSB integer (least significant bit first). It is this integer that is compared to the target.
However, as humans are used to seeing numbers formatted in MSB order (most significant bit first), that too is what happens in Bitcoin. The formatting with the zeroes up front is not the output of the hash function. It is the output of the hash function, interpreted as an LSB-encoded integer, and then formatted in hexadecimal in MSB order.

Thanks very much. So just to be clear it is 0000000000000000004ec916884d8b2cd3dc0e80ab199cc23e528e7dc10fafc6 that is compared to the target?

That depends what you mean by "00000...afc6". If that is your way of writing an integer with the most significant hex character first, yes.

Okay, and by LSB did you really mean Lease Significant Byte first as opposed to Least Significant Bit?

There is no distinction between the two when the smallest unit you're looking at is bytes. I mean bits.


text:
How do i get max and circulating supply of a Blockchain?
Hi how do i get the circulating supply for etc Bitcoin, Ethereum and so on?
I am not talking about coinmarketcap's API i want to get these data myself.
Is there any tutorials on how to do this anywhere and can i do it with an automated script in PHP?

There is no one database that stores reliable data for all the coins. You would have to look at the source code for each coin yourself to see what the caps are (for now), or whitepapers, or else trust what other people who have done that tell you, such as coinmarketcap or google.

Well, you need to download your desired blockchain and find all of the UTXOs and their value, add all of them together find the total circulating supply. I would personally do it using python.


text:
How long does a transfer take
I made a few transfers from a btc free mining app 4 times each for 500000 satoshi and it said it would take 10 days to show up in my coinbase wallet, but nothing yet.can I somehow track the transactions so I don't lose 2000000 satoshi?

Transfers in bitcoin can take anywhere from a few minutes to a few days depending on the network status and the fee paid. Currently, it's closer to a few minutes. In either case, you can also usually view unconfirmed transactions in your wallet or on block explorers such as blockchain.info.
In your case, however, things seem unlikely. All such apps that I've ever heard of (free mining, free btc, etc.) are scams, and never actually pay you. They will simply claim the withdrawal is pending, or keep telling you that you are under the withdrawal limit, while using your device for ads, or other purposes.

a btc free mining app

What's that? A "btc free mining app" sounds like a scam. Mining on a mobile phone is terribly unprofitable and I don't think that you really made 2000000 (0.02 BTC => 100$) with a mobile phone.


text:
What do we mean by honest nodes?
In his recent paper, Vitalik often mentions the term "honest nodes". What do we mean by that exactly?

An honest node is one which behaves in the way that we expect nodes to behave. This means that the node does not try to modify history, serves blocks and transactions correctly, transmits messages correctly, transmits correctly formatted messages and data, etc. These are all things that have a correct way of doing and honest nodes are ones which do all of these correctly.
This is opposed to malicious nodes which do not behave in the way that we expect nodes to behave. Such nodes may send malformed messages, send incorrect data, send too much or too little data, etc. These are things that are the wrong version of what a node is supposed to do, thus these nodes are behaving in a way that is not what we expect nodes to behave.

An honest node is a node that does not try to modify history. This is opposed to an attacker node which tries to modify a past block in the blockchain presumably to benefit them financially.
Note that because transactions are cryptographically signed, "An attacker can only try to change one of his own transactions to take back money he recently spent," Bitcoin Whitepaper.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
What has the nonaggression principle to do with bitcoin trading?
In the Introductory page of the book 'Attack of the 50 foot Blockchain', the author says (in reference to Ross Ulbricht) :

A young physics student starts a revolutionary new marketplace based on
  the nonaggression principle, immune to State coercion.

What does the author actually mean by that please?

Book author here! It's because Ulbricht subscribed to the tenets of Anarcho-Capitalism, and founded his drug market as an exercise in ideology. As it happened, the FBI didn't find this a compelling excuse.

I heard of the book, but I don't know it's author, so I can't tell you about his intent. But I can try and translate this into English for you:

A young physics student starts a revolutionary new marketplace which allows everyone to trade freely and safely without being afraid of Governments coming in an seizing accounts or money because they feel like doing so.

Hope that helps


text:
get the location of UTXO data
I need to find the location of the code which deals with UTXO, and then implement FIFO on UTXO storage. I aint able to find the location of UTXO code and also where it is stored.

Deals with UTXOs in what way? In your wallet or for the node to verify transactions? What do you mean by "FIFO on UTXO storage"?

@AndrewChow
A feature in the FLO core wallet called as coin control allows the users to select the UTXOs which should be used as inputs for the transactions. Currently by default, the coin control selects the UTXOs automatically from the wallet.But the required default behavior is that, the UTXOs should be selected based on the FIFO. So I am supposed to  find a way to extract the received date from the UTXOs data and pass them to the wallet.cpp accordingly so that the wallet selects the UTXOs based on FIFO instead of random selection.

By FIFO here I mean,  one that was received first in the wallet should be used first in the transaction.

What you want is the code for Florincoin's wallet's coin selection. This is found in the CreateTransaction function. Within CreateTransaction, the wallet also calls SelectCoins and that calls SelectCoinsMinConf. The coins are actually selected with SelectCoinsMinConf but SelectCoins and CreateTransaction are all involved with coin selection.
Also, because Florincoin's wallet is based on Bitcoin Core, it does not use FIFO for coin selection. Rather it uses Bitcoin Core's special algorithm for selecting coins which is difficult to understand (it tries to solve the knapsack problem by selecting exactly the amount you want to spend, but then it does some weird things to handle fees and change).

So what would be the first step in case I want to achieve the goal?

You modify SelectCoinsMinConf to do whatever coin selection algorithm that you want. You will probably have to change the data types to include the time because they are not necessarily there.

can you please tell me which function deals with the UTXO timings??If theres one  @AndrewChow

Time is mostly irrelevant for UTXOs. The objects for coin selection itself do not have time fields, so you will need to add one. CWalletTx has a time field and that is used to create the CInputCoins and COutputs used for coin selection.


text:
Cannot compile bitcoind with zmq enabled
I need bitcoind with enabled zmq. When I'm building bitocind from source and make ./configure the output is:
Options used to compile and link:
...
  with zmq      = no
...
No matter what i pass to arguments.
My configure command looks like:
$ ./configure --enable-cxx --disable-shared --with-pic --without-gui --with-zmq --enable-zmq --prefix=/home/ubuntu/bitcoin/db4/

This will happen when you try to build with ZMQ support even though the required libraries are not on your system. In this case, configure will silently turn off ZMQ support, and you should see a line like
configure: WARNING: libzmq version 4.x or greater not found, disabling
in the output. When you install the required version of the ZMQ library on your distribution (make sure to pick the DEV version to get the header files as well), it should work.

Problem solved, thanks a lot.
$ sudo apt install libzmq3-dev
now zmq      = yes

For homebrew: $ brew install zeromq

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
What does the "relayed_by" field in the BlockCypher API represent? Is there a way to gather geographical data of transactions?
The transaction data returned by the BlockCypher's API includes the "relayed_by" field, which the documentation describes as "Address of the peer that sent us this transaction". Is this the IP address of the original node that broadcasts the transaction?
In general, we're trying to gather geographical data of the transactions; is there a reliable way to do so?

It's the IP address of the node that first sent us the transaction. As transaction broadcast works a bit like gossip, it's not guaranteed to be the original node (it could be a node "in the middle"). However, as BlockCypher is connected to quite a few nodes on the network, so over multiple transactions you're highly likely to be able to identify the right originating IP.
This is not a bulletproof method, as a more sophisticated attacker could just use Tor for transactions broadcast. Practically this is the exception and quite frankly, simply using a web wallet with a good VPN is a much simpler way to achieve a similar level of anonimity.
So for most applications you can get a fairly accurate originating IP address using relayed_by over multiple transactions.
Full disclosure: I'm CTO and co-founder at BlockCypher.

wow somehow I didn't expect someone from BlockCypher to answer this; thanks so much! Since blockchain.info is so buggy right now BlockCypher is definitely our go-to.

EDIT: I misread the question, my answer pertains to blocks, not transactions.

...includes the "relayed_by" field, which the documentation describes as "Address of the peer that sent us this transaction". Is this the IP address of the original node that broadcasts the transaction?

Not necessarily, the node listed may be the one that found the block, or that node may have heard about the block from some other node.

In general, we're trying to gather geographical data of the transactions; is there a reliable way to do so?

Not really. An interested user could set up many nodes, in an effort to 'have eyes' in many different places on the network, thus increasing confidence about which node each new block originates from. But even that data is not strongly tied to geography, for example nodes can connect through hidden services such as tor.
In addition to this, many mining pools are composed of geographically distributed miners, so learning the location of a mining pool's node doesn't necessarily tell you anything about where the hardware that actually found the block is located.
Miners can vary the data in the coinbase transaction, and some elect to put a name on this field. For example, see this recent block: when decoded we can see the coinbase transaction includes the text ViaBTC/Mined by zout905. Worth mentioning: this data is not entirely conclusive, as any miner can put any data they'd like here, so it is possible for someone else to put 'ViaBTC' in a block they find, and it is possible for ViaBTC to put nothing at all.
Another way to distinguish who found a block is to look at the payout address. Some miners/pools will always pay the coinbase transaction to the same address, so you can track which blocks they've found by looking at the payout address. But this would only work for miners that pay to the same address, and requires an assumption they will continue to only pay to that address.

The IP will never be the one of the miner who found or broadcasted, the relayed_by field is strictly for transaction relay. Block broadcast and transaction broadcast are completely distinct, and mining pools have nothing to do with the latter either.

@Matthieu oh shoot! I now realize I misread this question (and API docs), and answered in terms of blocks, not transactions. My mistake, thanks for clarifying.


text:
Crypto exchanges algorithms
I have noticed that if I put a buy order up - for instance - on any not so heavily traded coin, if close to the highest bid, often within 20 secs the highest bid will try to beat me.
Or when I put it close to the lowest ask price, often it won´t take long till I get someone to sell it to me.
Before this there can have been hours with no activity.
To me, this does not look like bots that are set up to track MDA or other common strategies, but the exchanges own bots reacting to certain inputs.
Does somebody know more about the algorithms used by the crypto exchanges, which behaves this way?
Thanks in advance!

you're providing alpha to "high frequency market makers". Since they can tell that you are not a bot, they are assuming its a real bid, so they can bid on top of you and then they are now in a risk free position.
if they get hit, they will immediately place an ask at a price of:  last + (last-bid). they will wait hoping you will pay up, they may even entice you by placing another bid higher... then (within a couple of seconds) they will hit your bid, and take the small loss.
as long as the spread is much wider than the tic above you, they are in positive alpha.
in general, you should not try to play this game. just place "marketable" limit orders.. so buys at the best ask, and sells at the best bid, otherwise you are giving away your hand.

Thanks, that makes good sense. Although I was more curious about what´s going on than actually trying to "play this game", why wouldn´t I? If I can do what they do, buying low getting myself in among the bids and selling high doing the same on the asks, there should be a good chance that I´ll suceed making a bit myself as well, right?

no. you would be competing with the most advanced high-frequency market making algos. it has been impossible to compete with these since 2007 - i used to code them for hedge funds

Ok, so you´re saying that the algos on cryptoexchanges (which did not exist in 2007) are the same as those on standard exchanges fro futures, forex etc?
Did anything special happen in 2007, some sort of algo revolution?

yes. pretty much the same. eventually all the alpha gets arbitraged out  - high-frequency "stat arb" - just stopped working around that time.

I'm having a tough time understanding you, but if I try to extrapolate what you're saying, I think it's other traders who are out-bidding you, not the exchange itself. With so many bots out there, I think many people use them to trade, which could cause extra activity in a market that was otherwise dormant for a while. I use ClueDex TrendSockets to see real-time market data and often there will be dormant markets that suddenly get interest and begin trading. If no trading occurs on a market it means that there is no consensus on the price. Every one of those orders in the Order Book are real orders, but if the price never matches, there is no market and nothing is exchanged. The exchange algorithm only tries to find price matches. When you place a sell order, you are putting the price that is the lowest you are willing to sell that coin for. When you place a buy order, you are putting the highest price that you are willing to pay for that coin.

Thanks, I know the mechanics of an exchange when it comes to bids and asks. You may be right of course that it´s the bots of other clients that are doing what I see. But as far as I know, such bots base themselfes on wellknown trading strategies and this is where I don´t see the described actions fitting in.

Let´s say I put a bid order that converts into 0.0007 BTC at price 0.00003432. Untill then, the highest bid was 0.00003430.
Now the previous highest bidder moves up til 0.00003433. Why would a private bot do this?

I do understand that there may be some sort of "buy as low as possible, but make sure that you buy, but not as high as the lowest sell order" strategy in place but to me it seems more likely that it´s the exchange trying to drive the price that I am willing to buy for up. Exchanges also hold coins - it´s not only the clients that do so.
And well, these are the algos I´m curious about how works in detail - whether if deriving from private bots, or bots owned by exchanges.

I believe it would be unethical for an exchange to do this so I am giving the exchange the benefit of the doubt. You're right in that this behavior is to drive the price up. It's called "spoofing" where a trader will place multiple orders at higher prices without an intention on ever having them filled--they are withdrawn before they can be filled. The increase in activity can drive more people to trade, which ultimately stimulates the market and causes a price fluctuation. There's also something called a "wall" where someone puts a large volume of shares up at a higher price than others.

This is one reason to never trust the order book if writing a trading bot of one's own. Nothing matters in the market until the order is filled, but I still see people writing bots that use data other than the highest bid, lowest ask, and last price, to make a trading decision. That's very dangerous.

I don´t know if exchanges are ethical, but you´re saying that somebody may already hold this asset and then try and trick me to put a bid order myself that´s higher? The funny thing is, at some point it stops when you get really close to the best ask price. I tried playing a bit with it myself - first getting the best price by putting my bid slightly below the lowest ask price, but still too far from the next highest bid (I´m the highest) to want to change. Then after that I´ll be putting a bid order so that the existing highest one(s) will want to beat me, and then I take my bid away and sell

This however still is with a loss to me although I manage to make the lowest seller go a bit lower on his price for me, but at least I managed to - maybe - fool some bot that way, by getting a lower price than the best ask, and a better price when I sold than the best bid.

Do you think what I´m describing is a spoofing bot operating behind the scene? We´re talking about very tiny amounts here.. no walls are interfering at this level.

And, for not trusting the orderbook. . if you have the data coming live to you, it´s IMO the best thing to do.. let´s say you want to sell 0.04 of something that you bought for 0.035, and the first bid order is 0.045. Good for you, except for that the volume in that first order is only 0.002, and the next bid is at 0.03 and still does not hold enough volume to fill your order. In other words, you´ll lose that way by only looking at h/l/last prices.


text:
What happened to Bitcoin testnet?
What happened to Bitcoin testnet?
Confirmation time is very short.
10 confirmation occurred in three minutes.
I use Bitcoin core v0.16.0 (64-bits)

The Bitcoin testnet has a very low difficulty. Usually there are few people who mine on testnet. However, occasionally there will be enough people mining on the testnet for the difficulty to increase. But when those people go away, the difficulty is too high for the remaining testnet miners.
To combat this, there is a special rule that resets the difficulty to 1 in order to keep the testnet running. Unfortunately the way that this rule works allows large miners to game it so that the difficulty is constantly low.
What we are currently seeing on the testnet is exactly that. Someone with a lot of hashrate is mining on the testnet and gaming the difficulty to be very low. This means that blocks will be found very quickly until this person stops mining on testnet.
Nothing is wrong with the testnet, and there is nothing wrong with your node or the Bitcoin Core software.


text:
Does 4 byte Nonce enough to proof of work?
Is it always possible to find an hash value of a block, smaller than the current difficulty, just using 4 byte (Nonce) ? How can we be sure about it ?

possible duplicate of How can we be sure that a new block will be found?

No, it is not enough.
There is extra-nonce field. The scriptSig of coinbase transaction.


text:
Access custom BIP32 paths on trezor
So I really have 2 problems now:

I took xpub address for Dash from trezor and used it with blockcypher API to generate addresses with paths like m/0, m/1, etc
I sent some money to that addresses and noticed that trezor wouldn't show them, obviously it uses different paths than blockcypher.
I figured that easiest way is to take mnemonic and import it somewhere else, that would allow me to specify custom path, but I can't seem to find it. So I have trezor and I can access it, withdraw all the other funds from it, but I don't have mnemonic anymore.

What are my options to recover those Dash?

I don't feel confident enough to fork trezor firmware, modify paths and install it to my device. Are there other easier options?

If you have the Trezor and can access the device, why not just re-copy your mnemonic? Does trezor only display the phrase on initialization, and then never again?

The Trezor doesn't actually only derive at specific derivation paths. Rather it has to be given a derivation path, and the Trezor web wallet software only uses predefined ones. However you can use another tool that connects to the Trezor and specify your own derivation paths.
Trezor has a command line tool as part of their python library that you can use. See https://github.com/trezor/python-trezor/blob/master/docs/OPTIONS.rst. You should be able to use that to construct a transaction that uses the addresses that you want.


text:
How to find out addressHeader p2shHeader
I am trying to find out the location or a method (may be) for addressHeader and p2shHeader parameter for any altcoin. The following list contains these 2 parameters for few coins but I am unable to find the source of these.
addressHeader = 30  Digital coin
addressHeader = 25; Blackcoin
addressHeader = 76; Dash
addressHeader = 30; Dogecoin
addressHeader = 0   Crown
addressHeader = 14; Feathercoin
addressHeader = 25; NuBits
addressHeader = 63; NuShares
addressHeader = 68; Uro
addressHeader = 30; Verge

p2shHeader = 5;     Digitalcoin
p2shHeader = 85;    Blackcoin
p2shHeader = 16;    Dash
p2shHeader = 22;    Dogecoin
p2shHeader = 5;     Crown
p2shHeader = 5;     Feathercoin
p2shHeader = 26;    NuBits
p2shHeader = 64;    NuShares
p2shHeader = 5;     Uro
p2shHeader = 33;    Verge

These are address prefixes: A value prepended to a pubKey hash or scriptHash before base58 encoding. Assuming they are bitcoin forks and share similar source code, you can find them in the source code (eg. Dogecoin):
chainparams.cpp Line #128
I haven't seen a list of altcoin address prefixes, but I can see how that might be useful.


text:
How to Build Block Header in stratum?
When I studied the stratum on here,I found that there were little difference between the stratum and solo mining for building block header.
The stratum tell us that we needed to pad the header to uint512.
'000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000'
The bits is different to the algorithm of sha256's padding.
But when I practiced the example which solved testnet3 block,I couldn't use the information to calculate the hash until I discarded the padding.
In real-work,whether I need to pad or not?
By the way,the previous hash provided from  notification is not correct,you need to find it on there.

You do not need append padding, this step already implemented under the hood in the cryptographic library function sha256. As I remember, when I solve the same task and read this doc from stratum pool a few inconsistencies in the documentation that had to be solved empirically.
One of the nuances on which note that miners software do not know anything about the segwit and coinbase transaction for the miner job should be represented in the old format.


text:
Do we Need Pay Tax for Mining for US Govt
Do you need to pay Taxes for US Govt for doing Bitcion  Mining.??
I am in Singapore and mining through one of my friend in US.
Will the US Governement will issue TAX on My Name..?? Is it Legit ..?
If so, How much Taxation..?
Does Univted States TAx Revenue Board send the TAX Invioce on my Name
Thanks a lot

Do you need to pay Taxes for US Govt for doing Bitcion Mining.?

You are not liable for income tax because:

You are not a US citizen and
You are not working in the USA.

Someone in the USA who is selling you a service might be required to charge sales-tax (though that sort of tax is often not applied to foreign sales).

Does Univted States TAx Revenue Board send the TAX Invioce on my Name

As far as I know, there is no USA government branch named "United States Tax Revenue Board".
The USA Internal Revenue Service (IRS) would not charge you personally for sales tax. So far as I know, US sales taxes are a state tax not a federal tax

Scams
When buying "mining services" be aware that, unless you have a really good understanding of how bitcoin mining works, you are likely to be the victim of a fraudster.
One of the things fraudsters do is repeatedly invent superficially plausible (but actually false) reasons for you to send them money.


text:
How to fetch the latest unspent transaction by an address using bitcoind?
I want to build a server, which provide following APIs:

1.Get balance by address.
2.Get latest unspent transaction.
3.broadcast the transaction.

First by first, I know I can do above stuffes by blockchain and coinb, but I want to build my own APIs. What I have tried with the Python code has list as below:
import binascii
import json
from decimal import Decimal
from pprint import pprint
from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
from config import ConfigBasic

class BitPort(object):

    def __init__(self, config=None):
        self.conf = ConfigBasic()
        # pass
        self.rpc = AuthServiceProxy("http://{}:{}@{}".format(
        self.conf.rpc_user, self.conf.rpc_password, self.conf.rpc_host))

    def get_amount_by_addr(self, addr):
        return self.rpc.getreceivedbyaddress(addr)

    def get_unconfirm(self, addr):
        return self.rpc.getunconfirmedbalance(addr)

    def get_unspent(self, addr):
        """
        @param addr: A array with address, ["0xxxxxx", "0x122222"]
        """
        return self.rpc.listunspent(0, 999999, addr)

    def sign_rawtransaction(self, addr):
        fee_obj = self.rpc.estimatesmartfee(6)
        fee = fee_obj.get("feerate")

    def sendrawtransaction(self, address, pubkey):
        pass

if __name__ == '__main__':
    addr = '2NCTreR1GmHXMNSYnt2J76QZgv8PH1k4PHB'
    addr = '2MsHfXEmutS2GWPgK55JD4i1gKSFYmJgKXv'
    addr = 'n2eMqTT929pb1RDNuqEnxdaLau1rxy3efi'
    bp = BitPort(config=ConfigBasic)
    print(bp.get_amount_by_addr(addr))
    #print(bp.get_unconfirm(addr))
    print(bp.get_unspent([addr]))

Let's say, Why I need to do such stuff. The client-side need to check how many money are available. so I need to provide the 1. The client-side also want to send its money to someone else, so I need to broadcast its transaction to the public's chain, but before do that, I the client-side need to make a transaction hex, which require the server side provide an API to get the unspent transaction. Why?
Because make a raw transaction need the following at least:

1.vout (from unspent transaction)
2.txid (from unspent transaction)
3.amount (user custom)
4.fee (default value is ok)
5.public key (client side store or calculate it by itself)
6.private key client side store or calculate it by itself)

From many tutorial, like How to create a raw transaction, which is good. but didn't mention how to get an unspent by a address. which don't store inside the bitcoind side.
Unfortunately, I can only fetch all transaction by my wallet's address, which live in the bitcoind node. Once I tried the someone address, and I got the following exception:
Traceback (most recent call last):
  File "core.py", line 43, in <module>
    print(bp.get_amount_by_addr(addr))
  File "core.py", line 17, in get_amount_by_addr
    return self.rpc.getreceivedbyaddress(addr)
  File "/Users/frank/venv/bitcoin/lib/python2.7/site-packages/bitcoinrpc/authproxy.py", line 141, in __call__
    raise JSONRPCException(response['error'])
bitcoinrpc.authproxy.JSONRPCException: -4: Address not found in wallet

BTW, I run it on testnet, Anyone help me?

Bitcoind does not index transactions for non-wallet addresses. If you wish to build this yourself, you will need to:

Enable txindex=1 in your bitcoin.conf
Rescan the chain
Set up blocknotify and then parse the chain block by block, building an index of which outputs have been spent, and which haven't, and which addresses are involved in each transaction

Then, when working with a specific address, you first query your database for all unspent outputs, and then can use getrawtransaction to get the unspent tx information (although, you could store enough information in your index to not need to make the getrawtransaction call).
Alternatively, you can run something such as ElectrumX or insight, which will do all of the above for you.

What are the resources / cost estimates to run ElectrumX on AWS?


text:
bch transfered to cashadrrs instead of legacy
I tried to transfer BCH from Coinbase to Ledger Nano S.The nano ledger S gave me a legacy address starting with a (1)
Coinbase sent it out to a cash addr. How can I get a hold of this BCH. Looking on Blockchair I see my transaction. I see my ledger address starting with a 1 and I see the cash addr. starting with a q. Coinbase tells me I have to sync my wallet with the cash addr. Blockchain.
Can anybody help???

Possible duplicate of Bitcoin Cash accidentally sent to Bitcoin address. Can I get them back?

Whta was the transaction id given?

Possible duplicate of What would happen if you send Bitcoin (BTC) to a Bitcoin Cash (BCH, aka BCC) address?

Please don't flag this question as duplicate. They've sent BCH to their BCH address, but they have problems with the address format.

It should show up in your Ledger.
Cashaddr is a representation of the underlying hash for that address. Each BCH address has a legacy and a cashaddr format. In your case, it is simply likely that the block explorer Coinbase links to defaults to showing the cashaddr format. There are explorers which will show you both, such as blockchair.
For instance, looking up the address 1FPS2Y71KhNQbugjMxAGKwsUFNbvfsYm2h on blockchair will show you it's cashaddr representation as well, which is qzwulnvalvs6gwfy9t7gz5qxs22t9fag45tpcgu32g. Funds sent to either of the above will be accessible by the same private key, in a wallet following either format. Both addresses refer to the same underlying script.


text:
Creating multiwallets
I want to create wallets for users. bitcoin core allow us to
create one wallet. is there any way to create wallets for single bitcoin-qt which can able to run multi wallets at a time.I know I can rename my wallet and by re running bitcoin-qt it creates new wallet but it not allows to run both.
thanks in advance for your help

Research HD Wallets,

Yes. Bitcoin Core 0.16.0 introduced a multiwallet feature which is currently for the RPC interface only (the GUI part will come with the next major release). To have multiple wallets, start Bitcoin Core with the -wallet=<wallet name> option or add wallet=<wallet name> to your bitcoin.conf file. You must specify this option for each wallet you want to load.
For example, if you want to have two wallets named wallet1 and wallet2, you would start Bitcoin Core as:
bitcoin-qt -wallet=wallet1 -wallet=wallet2

or add the following to your bitcoin.conf file
wallet=wallet1
wallet=wallet2


text:
Trying to connect to bitcoin core on Google Compute Engine from an external IP, I was getting "couldn't connect to host error"
I have having issue connecting my bitcoincore from an external ip address (Hostgator to be specific). The Bitcoin core is hosted on Google Compute Engine (Windows Sever 2012).
Here is what i have done
Bitcoin Core Config File
deprecatedrpc=1
dbcache=1000
txindex=1
server=1
rpcuser=myusername
rpcpassword=mypassword
rpcport=8332
rpcallowip = 192.185.35.200

N.B 192.185.35.200 is the dedicated server IP on Hostgator.
N.B 35.195.0.35 is the Ip for my VM on Google Compute Engine
I also disabled firewall totally on the windows machine
I specified compute engine firewall rule to allow access for TCP port 8332 and 8333
I contacted hostgator, they told me port 8332 is enabled for outgoing connections but not for incoming on shared server
https://www.yougetsignal.com/tools/open-ports/ shows the 2 port as opened
But still, i can't get JSONRPC to talk to the bitcoincore. What i am getting is "Could't connect to host" .  When i make a call to with the EasyBitcoin Library.
<?php

include('easybitcoin.php');

$bitcoin = new Bitcoin('myusername','mypassword','35.195.0.35','8332');

$info = $bitcoin->getinfo();

print_r($info);

?>

What am i missing

try to allow all IP's instead of a specific IP , rpcallowip=0.0.0.0/0

I did that already in the bitcoin config file

To be specific about the error, bitcoind was returning HTTP Unauthorized error

You mentioned in your question that bitcoind returning Couldn't connect to host, for the new error please edit the question.


text:
Getting the wrong txid for coinbase transactions
I'm trying to hash transactions to get the txid. I get the hex values from blockchain.info. I get the correct hash for all transactions except for the coinbase when I hash it twice. Is there something different about how the coinbase transaction is supposed to be hashed?
The block I have tried is: https://blockchain.info/no/block/0000000000000000000870497004514bd3807cdc98b9f3a57038faf5df04144f.

The txid of the coinbase is supposed to be:
44763fed906f1a0e8b82e7497ac83856baa4b1c5621affdce04108a212018c4e
But I get:
6e129e567970540b2812ec58388d131c3b8fdbf4e4c992d140e255895df2992e

The txid is the hash of transaction without segwit data. The full coinbase transaction contains the segwit data which will result in the hash that you got. However that is not the txid.

Thanks, would you mind telling me what segwit data is?

See BIP 144: https://github.com/bitcoin/bips/blob/master/bip-0144.mediawiki. The hash that you have is the witness ID.

The hash you created is the wtxid (hash of Witness ID), not the txid (hash of Transaction ID):

For the difference between  txid and wtxid, see Mastering Bitcoin ch. 7 § "Transaction identifiers".

You appear to have a bad copy of the raw transaction.
When I look at the raw transaction for txid in the blockchain (coinbase transaction for block height 486,273, block hash 00000000000000000083cbfd33b63c2ac10e703266c5749bf3ce2fbff88f5791), I get the following:
Code:
01000000 01000000 00000000 00000000

00000000 00000000 00000000 00000000

00000000 00ffffff ff310381 6b07244d

696e6564 20627920 416e7450 6f6f6c6b

2f454231 2f414436 2f4e5941 2f332059

c36d7be1 550000df 320000ff ffffff02

38252e4d 00000000 1976a914 66037132

6d3a2e06 4c278b20 107a65da d847e8a9

88ac0000 00000000 0000266a 24aa21a9

edc11e8c dbd8d442 b27bf8f2 73395baa

83b5da4c 9c3d87fb c539dad7 42480437

10000000 00

When I calculate hashlib.sha256(hashlib.sha256(data).digest()).digest() on that data, I get the correct result.


text:
Can anyone help me understand why my transaction won't confirm
https://blockchain.info/tx/23bddd7a323f5e772d4e3cb24c1c0687c8fcfa79066a0986082a8c101f1ce648?show_adv=true
I have a high transaction fee, and not double spending. Any Ideas?

I don't think that is a high fee: https://bitcoinfees.21.co/ This site suggests it will take 5 to 240 minutes.

44.2 satoshi per byte was not a "high fee" yesterday. Yesterday around the time that you posted you would have needed to pay about 1.5 - 2 times that to get into the first block.

Your transaction is confirmed now. The blockchain link shows it took 214 minutes to be confirmed.


text:
Adding a note or message to payment?
I want to pay for something using bitcoin, using Bitcoin-Qt, and the seller has asked:

Please use the order number as the note/message to receiver info.

Where do I add this info? Presumably they can't see the 'label', so where do I put this note/message?

That doesn't make any sense to me. There is no receiver info in Bitcoin.
Was this requested additionally to providing a recipient address? Otherwise perhaps they meant that you should use the order number as the recipient address? Perhaps the seller is just using the same email template as for wire transfer payments. – In Bitcoin sellers usually use unique addresses for each sale, so they can identify the payment through the address that they receive the money on.


text:
Importing private keys into wallet - does the bitcoin disappear from the original wallet?
If I import a bunch of private keys into a new wallet, will the funds be removed from the original wallet? Or do they both somehow point to the same money?
In my case, I wish to move funds from Bitcoin Core wallet to an Exodus wallet.

Bitcoins are never actually in a wallet. Bitcoins sit in the blockchain. Many copies of that blockchain resides in nodes (computers). Simply put, your wallet merely is a list of addresses on which according to the blockchain are (fractions of) bitcoins stored.
You can have as many of the same wallet s you like. When they all contain the same addresses, they will show the same balance as they are all looking to the same blockchain.

if you Imported a private key into another wallet it will shows the exact amount as that of the original wallet and the coins will still be in the original wallet and you can only spend it with the private key of the original wallet, but if you sweep the wallet the coins are moved from the original wallet to the new wallet


text:
Error: Cannot parse configuation files:
I've been running Bitcoin Core forever on my Windoze 10 desktop and recently started getting the following on a reboot.  WSJT-X is a ham radio application on my computer that isn't even running.

Does your configuration reference WSJTX? How do Bitcoin Core and WSJTX relate in your setup? Could WSJTX perhaps have registered itself as the default application for the .conf file type? The error message says that the problem is that it cannot communicate with WSJTX. Have you tried what happens when you turn on WSJTX before starting Bitcoin Core? (Assuming that WSJTX and Bitcoin Core are supposed to interact.)

WTF...  this is my bitcoin.conf file.   This app totally took it over.  This is a HAM radio application that has nothing to do with bitcoin.
Unable to communicate with the WSJTX process.
UDP Port : 7831
IP Address : 127.0.0.1
Values read from WSJTX config file...
C:\Users\TAC\AppData\Local\WSJT-X - Slice-A\WSJT-X - Slice-A.ini
WSJTX Detected Instance...
Process Window Title : WSJT-X - Slice-A   v2.5.4   by K1JT, G4WJS, K9AN, and IV3NWV
Process Command Line : D:\WSJT\wsjtx\bin\wsjtx.exe  --rig-name=Slice-A
Decode alerts and logging will be unavailable until corrected.


text:
Bitcoin Wallet Unsynched and Lost BTC?
I downloaded the original bitcoin wallet for the mac in 2014. I purchased my first BTC around that date and I simply did not keep my wallet synched and up to date. I attempted to download the blockchain from bitcointalk.org and it did not work. However, after downloading, my wallet now says I have 0.0 BTC available and 0.0BTC pending. However, on the right side you can still see the transaction history from when I originally bought the BTC and it shows the full amount there. Is my BTC permanently gone? How can I retrieve my BTC and synch my wallet to the current blockchain? Any help would be great and I would even be willing to send some BTC as a reward to anyone who can help me retrieve my BTC.

You are fully synced and now it says there are no funds? Did you switch or accidently move your wallet.dat file? If your client is fully synced, open up the console and type listrecceivedbyaddress 0 true and see if it responds with the address you are looking for.

From your question's text, it appears that your wallet is not synchronized yet. You may want to wait for synchronization to conclude and then see if your problem is solved. If it takes too long, you may want to consider upgrading to a newer version, as many improvements have been made to speed up the synchronization.

Do you know your Bitcoin address?
Check on https://blockchain.info/ that it still has a value.
Locate wallet.dat, it should be in ~/Library/Application Support/Bitcoin/.
Install MultiBit and get a new address.
Visit https://blockchain.info/wallet/import-wallet. Drag the wallet.dat file into the dotted area. Follow the instructions.
Send your coins from blockchain.info to your new MultiBit address.
You'll now be in control of your coins again without requiring huge blockchain downloads.


text:
What exactly is a bitcoin?
So I understand how blockchains work[1]. I understand how proof-of-work works[2]. And I understand how they work together. I also understand (or at least I think I do :) how transactions work (A block can contain arbitrary data inside of it, so it can contain a message signed by A that he transfers 5 btc to B).
But where does the bitcoin itself fit in this picture?
Is it a recalculated number every time (so if A gives 1 btc to B, then if I want to confirm, I verify that A has 1 btc to give away by checking who sent him anything, and make sure that he has what to give away, etc. up until the miner's bounty)? If so, this would have to be done whenever a block is mined (if not, I (who have 0 btc in my "wallet") can certify that I give B 100 btc, mine a block, and include that transaction. And while the blockchain on its own would still work (meaning that the hashes work out and solve the proof-of-work), the accounting wouldn't).
Am I making sense or am I totally off?
[1]. It's a linked list, but instead of linking-by-address, it's a link-by-hash.
[2]. Change a part of the Node so that the node's hash would start with 100 zeros, for example.

There is more to a blockchain than just a linked list of hashes and a proof of work. There's more to Bitcoin than just a linked list of hashes and a proof of work. What defines Bitcoin and its blockchain are the consensus rules. These are a set of rules that determine what constitutes a valid block and a valid transaction. The blockchain is a linked list of blocks which contain transactions that conform to the consensus rules. Every block in the blockchain must also conform to these consensus rules.
One of the consensus rules is that a transaction cannot create more value in its outputs than it spends in its inputs. It can create less value, and the difference is the transaction fee. But it cannot create more value as that would lead to infinite inflation and Bitcoin would not work as a monetary system. This rule is completely independent of the linked list of hashes and completely independent of the Proof of Work.
Furthermore, there is no such an object as a Bitcoin. What people refer to as Bitcoin are simply values associated with transaction outputs. There aren't actually Bitcoins; it is solely based around the transactions and their outputs.

transaction cannot create more value in its outputs than it spends in its inputs So how does the network verify inputs?

A transaction creates transaction outputs. These transaction outputs are spent as inputs in other transactions. They have an associated value and a set of conditions required to spend that output. So verification means that a node will look up the transaction output that is being spent from (as it is directly referenced in the input) and makes sure that the transaction spending that output provides the necessary information required to spend that output as well as recording its value for use later in validating the transaction.

So a miner verifies the contract it puts into the blockchain? And what if it cheated and put it in even if it was illegal? Does every miner upstream verify each contract?

Not just miners, full nodes (which miners are a subset of) verify all blocks and transactions. If a block contains an invalid transaction, then all full nodes (including other miners) will reject that block for violating the consensus rules and continue as if that block did not exist. The miners are not the ones who determine whether a transaction is valid; full nodes determine that for themselves.

Thanks for this answer!! Just one small question, according to this answer, as of six years ago there were almost 10 million transaction recorded in the blockchain. How far back is each transaction verified (in the official software)? And (just curious here) have there been any (in the wild) attempts at double-spending in collusion with a miner that were stopped by others?

Transactions are verified "all the way back", i.e. every transaction in the chain of transactions is verified. However there are smart ways to do this besides verifying every single transaction for each new transaction. For Bitcoin Core, it maintains a separate database that contains the set of Unspent Transaction Outputs. Any UTXO in this database means that it is unspent and that the transaction it is from was valid. So when verifying a transaction, it can pull up the UTXOs it spends. If they exist, it can safely assume that all of the transactions in the transaction chain are valid.


text:
Raw data of transactions in all blocks
As of April 16 2018, there have been 518563 blocks (e.g. https://blockexplorer.com/api/status?q=getBlockCount). Is anyone aware of a way to get the number of transactions in each of those 518563 blocks?
There is a page that provides the average per day of the number of transactions per block (e.g. https://blockchain.info/charts/n-transactions), but I want the raw data that went into those averages.
There is another page that provides the list of all blocks, and clicking on a block gives you the number of transactions in that block (https://blockchain.info/blocks), this is what I need, but I will have to click more than 0.5 million times.
Is anyone aware of a way to get the raw data of the number of transactions in each of all existing blocks?

It is not too difficult to count them. It tooks 5 minutes to create a script and 15 minutes to execute it. The result ia a text-file (tab-separated) with columns:

block height
number of transactions in block
total transactions from the genesis
block hash

first five lines:
 0  1   1   000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
 1  1   2   00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048
 2  1   3   000000006a625f06636b8bb6ac7b960a8d03705d1ace08b1a19da3fdcc99ddbd
 3  1   4   0000000082b5015589a3fdf2d4baff403e6f0be035a5d9742c1cae6295464449
 4  1   5   000000004ebadb55ee9096c9a2f8880e09da59c0d68b1c228da88e48844a1485

last five lines:
 518413  835 310436090 0000000000000000000267cf7fecca8c6ef630bc1dfb028b3c98508b7efa3a03
 518414 1408 310437498 000000000000000000462059d45abb6364d6e5dbf9681fdba3058d50974bc760
 518415 1721 310439219 0000000000000000003c993ed7386f609a52eab8d8089c6bb125879f4c757f58
 518416 2500 310441719 00000000000000000022a1a6890682a0f5be5d13b0f5ce38eb81f40f1419ee14
 518417  662 310442381 000000000000000000162d18476f00793fb1d1e9681b29545e94bcba8beb0dd3

full list archive: https://cloud.mail.ru/public/9PUk/iRJdzDzDE

Wow, that is impressive. Could the date be added? Also could you share the program and code you use. I think this will be very useful to many. Thank you very much amaclin.

could you share the code and how you got these data?

This information is viewable on statoshi.info. Specifically in the Total Historical Transactions Chart. The current transaction count (as of this writing) is 310638164 transactions.
Or you can just write a script which looks up the information for each block and calculate the total number of transactions.


text:
How to find one private key from the list of 15 million public keys for the sake of experimentation?
Recently found a list of compressed public keys. The total number of 15 000 000 public keys.
Practical for all compressed public keys Balance: 0.000100 BTC
I do not set malicious goals. All just for the sake of interest and sports experiment I would like to try to find at least one private key from this entire list?
For the most part, I want to understand, apart from "Brute Force" (which will not help), are there more promising methods and ways of finding a private key?
Is it possible to search for a private key? Or are there some mathematical attacks, even when you know a large number of public keys?

Possible duplicate of I need to recover private key?,

Does this answer your question? Wallet gone and lost recovery phrase, how to get back my bitcoins?

That's how crypto works where public key cannot retrieve private key. If you were able to retrieve the private key with public key then bitcoin would be at high risk.
The only way is to Brute Force (Nearly impossible) or Social Engineering (Only if you know who owns the key) or Somewhere that stores leaked private key otherwise, you just can't obtain it.

It does not help if I even know a large number of public keys?

Nope, each different public key has it own private key so it won't help.

And such Entropy Attacks can give something useful with a large number of public keys? https://blog.cr.yp.to/20140205-entropy.html

but you do not know how those key are generated though.
It might be generated using a very secure environment with a lot of randomnesses or it might not.

Yes, that's right about the private keys from the list, I know almost nothing.


text:
Is it possible to add two secp256k1 points to get a "shared key"?
As I know from the Elliptic Curve Diffie Hellman (ECDH), you can create a "Shared Key": https://asecuritysite.com/encryption/ecdh2
This will look like this:
dA × dB × G = Shared Key

QB = dB × G

QA = dA × G

But is it possible to get the sum of dA and dB? (Plusing the value of each private key?)
dA + dB × G = ???

How to get a "Shared Key" when adding each private key (plus)?

Yes, QA + QB = (dA + dB) × G, but this isn't used in ECDH as QA + QB can be calculated by third parties.
You can read about this property here.

QA + QB can not be calculated by third parties? That is, the point G does not allow this to be done. Or how can QA + QB be calculated? Maybe in a different way?

If you know the points QA and QB, what you should do is draw the curve, mark the points QA and QB, connect them with a line, find where the line intersects the curve (apart from QA and QB). The third intersection will be -(QA + QB). You can then reflect the point over the X axis to find the point QA + QB. You can read more about addition here. (note that there are also some modulo operations) @IziTors

How on the graph of the curve can they get the sum of the total private keys (dA + dB) by calculating QA + QB?

It’s assumed to be impossible to find dA + dB from QA + QB, but you can find (dA + dB) x G if you know QA and QB by adding them. If you know QA and QB or QA + QB you can’t find dA or dB or their sum.

And there are minus points QA - QB, and accordingly minus (dA - dB) x G ?

@IziTors Yes. it's correct.

Replacing y2 with -y2 is all you need to do. @IziTors


text:
How to calculate the new sequence number N for the new final field Fp curve?
Are there simplified algorithms or online services or Python scripts where can calculate a new ordinal N for a new finite field Fp in an elliptic curve?
y^2 = x^3 + 7

I know that SageMath exists and in this program can make a calculation using the EllipticCurve () function, but I'm more interested in Python.

You want Schoof's algorithm for this, which is pretty nontrivial. A web search for "Python Schoof" finds this: https://github.com/pdinges/python-schoof. Is that what you're looking for?

@Pieter Wuille Yes, that's what I need! Thank you!


text:
How to change the field of the elliptic curve to the new value N while keeping the default Secp256k1 parameters?
I want to change the margin of the elliptic curve to the new N value, while doing so I want to keep the parameters Standard G-point Generator Secp256k1 that is, I want to replace: N = 115792089237316195423570985008687907852837564279074904382605163141518161494337
to the new value: N = 115792089237316195423570985008687907853269978629958289035461602417822422574827
leave the Secp256k1 parameters:
Gx = 55066263022277343669578718895168534326250603453777594175500187360389116729240
Gy = 32670510020758816978083085130507043184471273380659243275938904335757337482424

P = 115792089237316195423570985008687907853269984665640564039457584007908834671663

For the calculation, I use a Python script:
but in the end I get the same result as in the standard Secp256k1 parameters
that is, with Private key 2, I get
Public Key:
04C6047F9441ED7D6D3045406E95C07CD85C778E4B8CEF3CA7ABAC09B95C709EE51AE168FEA63DC339A3C58419466CEAEEF7F632653266D0E1236431A950CFE52A
Public Key (compressed):
02C6047F9441ED7D6D3045406E95C07CD85C778E4B8CEF3CA7ABAC09B95C709EE5

the result is the same as in the field N = 115792089237316195423570985008687907852837564279074904382605163141518161494337
What exactly am I doing wrong because I have set a new field? N = 115792089237316195423570985008687907853269978629958289035461602417822422574827
What needs to be changed so that as a result the Public Key is different from the standard Secp256k1 parameters?
Code :
Pcurve = 2**256 - 2**32 - 2**9 - 2**8 - 2**7 - 2**6 - 2**4 -1 # The proven prime
Acurve = 0; Bcurve = 7 # These two defines the elliptic curve. y^2 = x^3 + Acurve * x + Bcurve
Gx = 55066263022277343669578718895168534326250603453777594175500187360389116729240
Gy = 32670510020758816978083085130507043184471273380659243275938904335757337482424
GPoint = (Gx,Gy) # Generator Point

N = 115792089237316195423570985008687907853269978629958289035461602417822422574827
privKey = 2

def modinv(a,b=Pcurve): #Extended Euclidean Algorithm/'division' in elliptic curves
    lm, hm = 1,0
    low, high = a%b,b
    while low > 1:
        ratio = high/low
        nm, new = hm-lm*ratio, high-low*ratio
        lm, low, hm, high = nm, new, lm, low
    return lm % b

def ECAdd(a,b): # Point addition, invented for EC.
    LambdaAdd = ((b[1] - a[1]) * modinv(b[0] - a[0],Pcurve)) % Pcurve
    x = (LambdaAdd * LambdaAdd - a[0] - b[0]) % Pcurve
    y = (LambdaAdd * (a[0] - x) - a[1]) % Pcurve
    return (x,y)

def ECDouble(a): # Point Doubling, also invented for EC.
    LamdaDouble = ((3 * a[0] * a[0] + Acurve) * modinv((2 * a[1]), Pcurve)) % Pcurve
    x = (LamdaDouble * LamdaDouble - 2 * a[0]) % Pcurve
    y = (LamdaDouble * (a[0] - x) - a[1]) % Pcurve
    return (x,y)

def ECMultiply(GenPoint,privKeyHex): #Double & add. Not true multiplication
    if privKeyHex == 0 or privKeyHex >= N: raise Exception("Invalid Private Key")
    privKeyBin = str(bin(privKeyHex))[2:]
    Q=GenPoint
    for i in range (1, len(privKeyBin)):
        Q=ECDouble(Q);
        if privKeyBin[i] == "1":
            Q=ECAdd(Q,GenPoint);
    return (Q)

publicKey = ECMultiply(GPoint,privKey)
print "Private Key:";
print privKey; print
print "Public Key (uncompressed):";
print publicKey; print
print "Public Key (compressed):";
if publicKey[1] % 2 == 1: # If the Y coordinate of the Public Key is odd.
    print "03"+str(hex(publicKey[0])[2:-1]).zfill(64)
else: # If the Y coordinate is even.
    print "02"+str(hex(publicKey[0])[2:-1]).zfill(64)

I want to change the margin of the elliptic curve to the new N value, while doing so I want to keep the parameters Standard G-point Generator Secp256k1

What do you mean by "margin"?
What you're asking for is a contradiction. The generator order N is a property of the curve and its generator. It is not something that can be chosen independently.
It is the answer to the question "After how many times adding the generator to itself do I end up with the point at infinity". It is completely determined by the curve equation (Y^2=X^3+7 for secp256k1) and the generator (which must be on that curve). N is computed using Schoof's algorithm.
If you want N to be different, you will need to pick a different generator. In the case of secp256k1, where the curve order is prime, every point has the same order, so another choice won't help (except the point at infinity, which by definition has order 1).
So, if you want a system where the generator order is the N value you desire, you'll need a different curve as well. Finding a curve which admits a generator with a specific order is a very nontrivial problem. I don't know of any generic way of doing so.

to the new value: N = 115792089237316195423570985008687907853269978629958289035461602417822422574827

Where does that number come from? Does it have some special properties that make you believe a curve with that order should exist?

For the calculation, I use a Python script: but in the end I get the same result as in the standard Secp256k1 parameters

This is completely expected, as you're not using N in the computation (nor can you). You're just computing generator+generator.

The elliptic curve is secp256k1: y2 = x3 + 7 (mod p)
where the field size is
p = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F.
The curve order of secp256k1 is:
n = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
The public key P (point) is calculated by multiplying the private key d (scalar) by the generator point G (point) where
P = d (mod n).G
The n (N) you state is not the field size p, it is the curve order
n = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
This curve order n is such that nG = point at infinity. This is a property of the curve and cannot be changed.
Thanks to Pieter Wuille for the corrections.

Ok sorry. I think that's at least not inaccurate now.

Yeah, looks better now!


text:
Sending my Bitcoin cash using my private key
This question has probably been answered many times but despite my efforts I cannot find a solution. I have several Bitcoin (BTC) addresses for which I hold all private keys. These addresses now also hold Bitcoin Cash (BCC) and so my question: how get I can hold of the BCC?
I have tried several BCC wallets but none allow me to import a private key...
I just want to make a transfer (to an exchange to get BTC instead) so I dont want a wallet that forces me to sync the complete chain.
Note:

Coinomi on Android apparently allows me to import private keys, but for some reason it wont display my BCC after I try importing the key (no error message, nothing)
To do the same with BTC I use blockchain.info, deleting all addresses after the transfer is sent

Try sweeping your BTC private keys from your Coinomi BCH wallet 'Overview' tab, by clicking .../Sweep Wallet. Note that you need to create a BCH wallet without altering the derivation path of the wallet (ie the derivation path of the BCH wallet you create must be M/44H/145H/0H).

After trying a few more wallets I got one to do what I want :): http://electroncash.org/
Of course it had to wait until I had already posted my question...


text:
How i get callback notification while BTC received to wallet
i installed bit coin core in my Windows machine [test-net] .i implemented a C#.net application using Bitcoin RPC command like generate address , transfer BTC to one address to another address. It working great.
My question is, how can I get a notification once an address that I generated receives a payment? How can I get a notification when the payment is confirmed?
Any help / guidance would be helpful.

you have to use ZeroMQ for that purpose see Bitcoin/zmq once you receive a transaction you can get a notification.
Bitcoin/zmq doesn't tell you if some transaction confirmations changed, so you can check transaction confirmations manually by calling getrawtransaction
You can use walletnotfiy as well
walletnotify=/bin/curl http://127.0.0.1/receive.php?trx=%s

They can also use the walletnotify option

Thanks @Adam i resolved issue using wallet notify -> walletnotify=curl http://123.95.66.172/Notify/walletnotiy?txnid=%s in bitcoin config file . i implemented  a simple mvc.net application


text:
synchronizing after many years
Several years ago, without really understanding the mechanics relating to bitcoin, I believe I might have managed a bit of mining. The "Bitcoin-wallet" and other files, including my wallet.dat file have been sitting on an old PC that I only found during a recent move! So am now playing catch-up and have a few questions (noting that I have copied over the relevant files and wallet.dat to external drives).
When I first tried to open the wallet there was an error/warning about corruption but asked if I wanted to proceed.  I did.  After updating the time and date of my old PC to today's date/time, the wallet started to work.  That is while my wallet indicated that it is "out of sync" and showed a balance of zero, it did start syncing with the network.  It is now telling me that it is over 10% done and that are "XYZ" blocks remaining.  What does this mean? And will my wallet be updated only when the synchronization is complete?
Also, at towards the top of the wallet is there is a message "alert key comprised, upgrade required"
Thanks for your patience.

It is now telling me that it is over 10% done and that are "XYZ" blocks remaining. What does this mean?

The bitcoin network works by continuously adding new blocks onto the blockchain. Each block is full of transactions, and each transaction can be traced back to earlier transactions, creating a verifiable record of ownership for all coins in the system.
So to show your balance, the wallet needs to synchronize with the blockchain, so that it can accurately determine what (if any) coins you own.

And will my wallet be updated only when the synchronization is complete?

Yes, though if you want to find out your address balance more quickly, you could look up the addresses controlled by the wallet, and then use a block explorer website to check the balance of each individual address. Note that if your wallet has a large list of addresses, this may be a hassle to do.

Also, at towards the top of the wallet is there is a message "alert key comprised, upgrade required"

This message relates to the retirement of an alert messaging system that was built into the original clients, it is meant to alert you to the fact that the key that allows alert messages to be sent is now publicly known. This is not critical to the function or safety of the wallet.
If you upgrade to a newer version of the client, your sync time may improve greatly (depending on how old the software you're using is). If you post info about what version of the software you're using, someone may be able to provide more help in regards to this.

This is really helpful thank you.  Apologies, for hitting the wrong button re the helpfulness of your reply, but I think I have now corrected that.  The syncing is 35% complete, so perhaps it is best to wait.  I am also not sure how to read the wallet.dat file.  The software I am using on my old PC is Bitcoin v0.8.1.

oops.  I should clarify that I am using V0.8.1-beta for windows. the date on my wallet file is 1/1/2009


text:
what is the difference between blockchain and blockchain service?
they say it is good to invest in blockchain projects, as they have economies of scale and sponge off some value of the dapps built on them. is investing into blockchain services inferior ROI?

It has no specific answer. The investment is good or bad depends upon a number of factors like the quality of the development team, the viability of the project itself, market research and so one...No one can just say yes or no to such questions.

First, please do research into any specific investment you decide to make and never invest more than you can afford to lose.
Blockchain investing:
The easiest way to invest in a blockchain is by taking a long position on bitcoin which is still risky but historically and still for the time being is the main health indicator in the blockchain economy. You can possibly make more money trading or investing elsewhere but your chances of success will be dependent on your abilities of research, evaluation, and luck.
Service investing:
If you had invested in Coinbase, which supports only the most mainstream blockchains you have a much stronger and stable position than if you invested in an Multi Level Marketing backed company called yo-go which supported one alternate blockchain technology....where did yo-go go? Will I ever see the ROI from that money? I don't think so.... :'(
blockchain v blockchain service:
yes and yes, no and no. there are too many projects and too many blockchains to paint them all with the same colors. It will have to be up to you to decide if an opportunity is worth investing in.
For me personally, I know people that have a high ROI with simply trading in blockchains but I like the idea of being a part of a service. I have a pet project in services I am working on myself which, if successful, would give me a nice ROI but also help the blockchain economy as a whole and make the value of the investments I have in the blockchains increase.....so win win ;)


text:
why is bitcoin leveldb separated in so many small pieces?
Currently I could see 1418 ldb files on my box, from 210040.ldb to 215423.ldb (some missing).

Why are they separated in this way?
I want to read the leveldb using golang, but I don't know which one should I use.
Can I load them altogether?

At the moment I try out creating my own leveldb I understand.. The chainstate folder itself is the entry point of the database; all the files within it are just the data.
This is what the data looks like after I put some dummy data

If you want to add more information, please edit the question rather than posting an answer :)

Apologies if this was intended as an answer, it didn't seem to fully address all the points of the question :)

@MeshCollider np. :) Actually the 3 questions can be answered by this one. The separation of .ldb files has nothing to do with bitcoin, it's just the way leveldb stores the data. I hope this learning can help save others' time.


text:
What are protocols in Crypto? What are token protocols?
I understand how Consensus protocols work. They are essentially rules that nodes follow in order to validate transactions and blocks. It seems as if all tokens are their own protocols.
So what are protocols, and protocol tokens?
If DogeCoin and Litecoin are forks of Bitcoin, does it mean they are using the Bitcoin Protocol? Or do they have their own blockchain?

The bitcoin code creates a network, which follows a consensus protocol.
The bitcoin code can be forked, and parameters tweaked, in order to create similar, but separate and distinct networks (such as dogecoin, litecoin, etc). Each network will maintain it's own blockchain.
In cryptocurrency, the word 'token' is generally used to describe a special type of non-fungible cryptocurrency asset. It is essentially like a special 'earmarked' piece of cryptocurrency, that can be specifically tracked on the network. A token does not have it's own blockchain, it exists on some parent cryptocurrency blockchain. As an example, the ethereum network hosts many tokens, such as TRX, REP, or BAT. The bitcoin network can also support tokens, through the OMNI protocol.
Tokens follow the protocol rules of their parent chain, but could have additional token-specific rules programmed into them as well.

A security protocol (cryptographic protocol or encryption protocol) is an abstract or concrete protocol that performs a security-related function and applies cryptographic methods, often as sequences of cryptographic primitives. A protocol describes how the algorithms should be used. A sufficiently detailed protocol includes details about data structures and representations, at which point it can be used to implement multiple, interoperable versions of a program.


text:
Hash rate, transaction and block relationship
I'm aware that when the hash of the block header (block hash) is below the difficulty target, a block is deemed as validated.
But because I've never run a bitcoin node before (will soon), I had a few questions regarding the mining process.
1) When miners are running the BTC software, are they by default confirming transactions in the mem pool based on the highest fees, or are they allowed to choose which transactions they may validate?
2) If you have a higher hash rate, does this mean you can validate transactions quicker as well?
3) When a block is validated on average every 10 minutes, as set by the BTC protocol, are miners also trying to validate transactions too?
4) How are transactions validated?

Miners can choose whatever transactions they wish to include in a block, as long as they are valid, but doing so may require them using custom software. As far as I'm aware, the Bitcoin Core software selects transactions by highest paying fee first.

No. The hash rate is determined by specialized hardware (ASICs) which do not perform transaction validation. The hardware does not help with the validation of transactions because it would take longer to transfer the information to this hardware than to simply perform the hashing on the CPU. The bulk of the time in validating transactions is spent on signature validation anyway, which the ASICs do not do (although it would be possible to build one for this particular purpose).
The mining ASICs are mainly more efficient than mining on the CPU is because they perform the hash algorithm on the same data many times, internally only updating a random number for each hash attempt and recalculating the merkle root.

Miners validate all transactions as they come from the network just like every other network participant. Their bitcoin node will hold incoming transactions in the mempool, and the mining software will request a block template at regular intervals, containing all of the transactions which are to be included in the block. In a mining pool, the pool operator creates the block template and the miners work from that template, and validating themselves it is optional.

This is quite a complex topic because every single aspect of a transaction needs validating, and the entire details are not defined in a document, but by the reference implementation (the satoshi client / bitcoin core).
The key details are that:

All of the inputs to a transaction are checked to be unspent
The sum of the output amounts is less than the sum of the input amounts (with the difference being the transaction fee).
For each transaction input, the scriptSig from that input is pushed onto a stack, then the scriptPubKey from its matching transaction outpoint is evaluated with that stack. The script must evaluate to true for the transaction to be valid. The scriptSig will usually contain a public key and a signature, and the scriptPubKey will usually perform an OP_CHECKSIG, which tests that the SHA-256 of the entire transaction was signed by the private key matching the public key. (This itself is quite nuanced because the transaction must be stripped of the signature before it is signed or validated).

There are many finer details to the validation of transactions, which are mostly answered in existing questions on here, explained on the bitcoin wiki or in the BIPs.


text:
Open source updated blockchain explorer for altcoin
Is there updated blockchain explorer available to work with altcoin?
I configured the most popular blockhain explorer: iquidus explorer but the transactions display table are limited on display, can't show or paginate all transactions.

you can use
insite api. You can customize the code for any altcoins. They provide UI and API for explorer services


text:
Why does this return an ssl error when using pybitcointools?

Really confused as to why this error persists.
I have upgraded pip ( I believe)
And have installed pybitcointools...

Either the explorer you are using has an invalid/expired cert, or there is an openssl misconfiguration on your machine (or you're missing some ca certs)


text:
Can you send a Bitcoin transaction to a Bitcoin address that does not exist?
Say I arbitrarily pick an address "abcdefg" (for example's sake), which does not exist in the network; no one "owns" the address.
What happens when I attempt to make a transaction to this address?
Is the transaction rejected by the network?
If not is this transaction stored in the blockchain?

Can you send a bitcoin transaction to a bitcoin address that does not exist?

Absolutely, however, the address must be valid.
A completely arbitrary address (or a typo) will likely not be valid because addresses contain a checksum when they are Base58 encoded. There is no way for the network to know if someone owns a key corresponding to an address unless a transaction has occurred with that address. See Bitcoin Wiki - Address and BIP 13 which describes how a Pay-to-Script-Hash address is formed, as an example:
base58-encode: [one-byte version][20-byte hash][4-byte checksum]

Upvote, however the ‘network’ never knows if someone owns a key belonging to an address, regardless of previous spends. A user may infer that a previously used address has a known key, but that may also be an incorrect assumption: keys can be lost or deleted.

Can you send a Bitcoin transaction to a Bitcoin address that does not exist?

Yes, the bitcoin network and blockchain do not attempt to keep track of which addresses exist. The concept of an address existing or not existing is not meaningful. Addresses can exist but be unknown to the blockchain. I can install a wallet on an offline PC and create valid addresses that no one alse knows about.

What happens when I attempt to make a transaction to this address?

It will be processed in the usual way. The "non-existent" address will then have some bitcoin value associated with it in the blockchain.
If the address was invented rather than derived from a private key then that bitcoin value is forever lost - it can be seen but never spent. Unless, someone can guess a private key from which the address can be derived - the design of Bitcoin makes this as close to impossible as can be achieved - the whole integrity of Bitcoin depends on it.

Is the transaction rejected by the network?

No

If not is this transaction stored in the blockchain?

Yes.


text:
How can you get a list of all addresses mentioned in the blockchain?
I'd like to parse the blockchain in order to produce a list of all addresses that are mentioned in the blockchain.
I'd like to do this with a program, language agnostic.

Just use a tool: https://github.com/mrqc/bitcoin-blk-file-reader and modify the code as you like.

Several Bitcoin implementations index by address already. See libbitcoin-server, which allows you to query for all tx spending to/from an address. Unless you are interested in doing this yourself :)

Addresses aren't mentioned in the blockchain. But you can calculate them based on the transaction scripts. In order to do this, you need to calculate the address from the scriptPubkey of each transaction. To calculate the address you have to:

Determine whether it is a P2PKH or P2SH, so you know what prefix to use: List of address prefixes.
Calculate the BASE58CHECK(HASH160(<prefix><scriptPubKey>))


text:
Can you create Bitcoin transactions from one address to the same address?
So if I wanted to send 1 satoshi from a Bitcoin address to the same address...
Would this be possible?
Would the transaction be recorded on the blockchain?

Yes, this is possible.
As far as bitcoin is concerned there is no such thing as an address, only locking scripts. As long as the input's lock script is satisfied, the output can be sent anywhere, including to an identical script.
This technique is often used by exchanges to consolidate the smaller outputs that build up as they process withdrawals into more usable chunks when fees are low.

Also used for change in some wallets.


text:
Can you create empty Bitcoin transactions?
Is it possible to create Bitcoin transactions of zero value, or in other words sending 0 bitcoin to an address?

Yes, it is possible and allowed by the consensus rules to create 0 value outputs. Such outputs can even be spent. However such outputs are also non-standard and thus transactions with 0 value outputs will not be relayed. They can still be mined into a block by a miner directly inserting the transaction into a block they are mining.


text:
Do invalid keys in BIP44 path matter?
I understand not all private keys are usable as they fall outside of Secp256k1, but do they really matter when the master node or path being derived in BIP44 generates a private key which isn't usable as those nodes (keys at that node) are not supposed to hold funds?
Or is it just the actual address (external/internal chain of addresses under an account) that matters as those are the ones supposed to hold funds?
Or hitting a private key outside of Secp256k1 somehow translate into child keys being outside of Secp256k1 as well?

AFAIK, it's not about BIP44. It's about BIP32 child key derivation. A child privkey is not a hash, it's actually derivated thru elliptic curve calculations.

@ChrisChen You probably misunderstood. I meant to ask about nodes (which are essentially private keys) which will never hold funds and simply used as a node in structure of BIP32 (here BIP44)

https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#Private_parent_key_rarr_private_child_key What is the term in BIP32 that you're referring to as keys at that node?

@MCCCS Basically childs are what I am referring as nodes here.

"In case parse256(IL) ≥ n [where n is the curve order] or ki = 0, the resulting key is invalid, and one should proceed with the next value for i. (Note: this has probability lower than 1 in 2^127.) "So if child privkey is too large you should do that.

@MCCCS I get that but its only for actual childs that gonna hold funds. For other childs, that are just being used to derive other childs, does it really matter for them to be valid is my question


text:
Bitcoin core - creating transaction from UI without broadcasting it
I would like to use Bitcoin core's wallet UI to create a transaction but instead of broadcasting it I would like to get the underlying raw transaction.
Is there a way to do that?
I assume that network sniffing tools might be able to help but I wonder if there is a direct way. I think it would be really useful to have such feature - view raw transaction & confirm before broadcast.
The motivation for this specific scenario is the following  - I would like to create a raw transaction on an offline machine running Bitcoin core (with synced blockhain) and broadcast the transaction from another machine.
I am aware that what I am asking for is easily achievable with the CLI but I'd like to use the convenience of a GUI (& fee calculations) and also avoid creating non-intended transactions.

1) First you can add connect=1.1.1.1 to your bitcoin.conf. Your node won't search for other nodes and just try to connect to 1.1.1.1. Since 1.1.1.1 is not a node, your node will have 0 peers.
2) Then you can make the transaction, open the debug console and enter: gettransaction YOURTXID. (or getrawtransaction to get the hex encoded transaction)
3) Then you can close Core, add zapwallettxes=1 to bitcoin.conf and start Core to remove unconfirmed wallet transaction you've made to cancel it.

Thank you. Took me a long time to test it but I can now confirm it works as intended.


text:
Unique Identifier/Credit
Newb, apologies if this is a dumb question. If a bitcoin is sent to my wallet is there a way the sender can use any part of the blockchain/transaction as a unique identifier so they can claim a credit in the future for the amount sent, that is, without assigning them any additional identifying information to them? (e.g. You send me a bitcoin, I treat it as a credit.  You can claim the credit by using some combination of the numbers used in the transaction, so I can credit you the amount sent, without assigning any additional information to you, and no one else could be privy to that identifying information.  Thank you for the help!

This is possible, but your customers will have to use a wallet that supports the functionality of signing messages using the wallet’s private keys. For example, bitcoind has the signmessage command. The user could input a message such as ”todays date is ____, and I control bitcoin address ____, which sent coins to ____ service” in order to prove their identity.
Using any identifying info from the transaction itself will not be a good way to prove user identity, since all transaction details are a matter of public record.
Note: By utilizing this functionality, you will be restricting your potential user-base to only more knowledgeable users. Not all wallets have this functionality, in fact most do not. If a user happens to sends bitcoin from a wallet that cannot sign messages, they can prove their identities by importing the private key into some other software that is capable and then using it to sign a message— but again this is a more ‘advanced user’ sort of operation.
Another note: DO NOT build a service which requires users to communicate their private key to you. This would be an irresponsible thing to do.

Thank you very helpful.  We are a business that wants to be able to take bitcoin payments on account for future orders.  It works well with our model.  Perhaps, we need to communicate a unique customer number to them independently of their deposit?

@baynard I think that could work, so long as the identifying number is generated, communicated, and stored securely. It does open up some additional considerations though: You wouldn’t want an employee with access to your backend able to falsely claim a large deposit, you wouldn’t want the algorithm that generates identifying numbers to be game-able, etc

I wanted to ask you too about a more old school variation on TEV's idea (forgive me if I'm missing something fundamental, my business is trying to accept bitcoin  but I have very limited knowledge re. bitcoin, (i) customer sends bitcoins (ii) customer texts using Signal/other encrypted messaging app a unique number THEY generate (iii) customer makes payments from their deposit using their unique number. If approach works I can build better flow and ux into our platform. Do you see any issues/security, etc with this less artful approach? Matching customer with deposit? Thxs again!

@baynard I replied to this on JBaczuk’s answer. As another option that is more straightforward: if your customers can create any sort of account on your site, you could simply generate a unique deposit address for each account. This would remove the need to prove ownership of an address that made a deposit, users would instead simply need to maintain ownership of an account. This is a pretty standard model for a custodial service/site.

is there a way the sender can use any part of the
  blockchain/transaction as a unique identifier so they can claim a
  credit in the future

The only secure unique identifier is a private key used to send the funds (or a digital signature proving ownership of that key).
If I understand you correctly, you want to give someone credit for sending bitcoin. The only way to be sure that a specific person sent you bitcoin is for them to provide proof that they own the private key that sent it. This could mean either showing you the private key (usually not preferred, because now its exposed), or digitally signing a message (that you provide) with the same key that was used to pay you. And even this doesn't prove that they sent it, it just proves they have access to the key that was able to send it.
The problem is the entire blockchain is public so anyone can look up the transaction and provide data about it like the txid or the block it was in, even an exact amount, and pretend they sent it.
Note: By the way there is an RPC method signmessage in bitcoin core that could be used to do this, see https://bitcoincore.org/en/doc/0.16.2/rpc/wallet/signmessage/
Update: As mentioned in the comments, generating a new Bitcoin address for each customer, which you only need to share with them, would be a decent (and common) way of tracking payments. If someone else found out about the address and sent funds, only the customer you assigned that address to would get credit. This would best be implemented as a Hierarchical Deterministic wallet so  your keys can all be generated from a master key.

Thank you.  Your answer is a helpful elaboration.   We are a business that wants to be able to take bitcoin payments on account for future orders. It works well with our model. Perhaps we need to communicate a unique customer number to them independently of their deposit, or is their some other secure way of doing this without using the signmessage method, as per other other answer, this might limit customers?

You could develop wallet software that will handle the signing so there is a good UX. However, as @chytrik noted, you don't want to require users to expose public keys (for ECDLP attack prevention). I guess you could warn them so that they can create a single address just for this tx.

@TEV what about a more old school variation on your theme (forgive me if I'm missing something fundamental, my business is trying to accept bitcoin as a payment method but I have very limited knowledge when it comes to bitcoin, (i) customer sends bitcoins  (ii) customer texts using Signal or other encrypted messaging app a unique number THEY generate (iii) customer makes payments from deposit using their unique number.  If the approach works we can build a better flow and ux into our platform. Do you see any issues/security, etc with this less artful approach?  Thank you again!

@baynard anyone watching the blockchain for payments to your service could also send a message claiming they own that deposit, so this doesn’t solve the issue of proving ownership of a deposit. The method @ TEV suggested would work, but I don’t know of any wallet that will decrypt messages encrypted with a bitcoin public key. Importing a private key into some other cryptographic software to deal with the decryption creates risks for your customer, so I think using the message signing functionality is a better solution

@TEV thanks this is super helpful.  I want to go with bitcoin so I think assigning a different address to each customer will be the most secure and easiest ux solution

@TEV I didn’t know electrum has that functionality! My mistake, thanks for clarifying.

Hit a hurdles with unique addresses for customers integrating into our app without a lot of reinvention of the wheel....what about a slight variation on above...i) customer messages id# (x = id)  ii) we message back y id# (x + y = PIN) iii) customer makes deposit and messages deposit amount and their PIN  iv) Customer can only access account if they have PIN.  Since PIN is generated before deposit anyone following block chain will only see deposit amount but not have PIN to use.  Practical issues,  logic flaws, other flaws in approach...THXS!


text:
NXT Private blockchain changing the block generation time
By default the block time for nxt is 60 sec average this is question.
This parameter can be changed to a lower time 10 sec for e.g?
And if  yes what would be the possible impacts (negative and positives)
Thank you.

Yes, the block time can be changed, but not very easy. There are two ways to do it:

Change the timestamp resolution to be 1/6th of the second. The
drawback is that you will run out of int values 6 times sooner
(timestamp is 32-bit integer). And eventually it will be less
convenient to read timestamps.
Keep the timestamp resolution and
adjust the forging. In Nxt there is no constant for changing the
block time, so you'll have to change few other constants. A
BLOCK_TIME constant was added in Ardor, you can see how it is used
there. The drawbacks of having 10 sec blocktime with 1 sec
resolution is that the base target adjustment will work not so well,
so finally you may end up with average block time which is not
10 sec.

A negative effect in both cases is that there will be less time for nodes to communicate new blocks and consequently more spontaneous forks will appear.
And the number of blocks will grow 6 times faster.

@Djalillounis, welcome, please accept my answer as best answer