texts:
I'm interested in learning more about how bitcoin, mining, and blockchain technology work. I'm a student and don't have a strong background in computing, and I'm looking for a layman's explanation of a few basic, yet critical questions surrounding the currency and the technology behind it. I plan on sharing the results with other interested students who want to understand more about this important concept.

Miners receive 25 Bitcoins every time they create a hash (is this accurate?)- where do the coins they receive come from - are they fabricated or do they already exist somewhere? What I'm trying to understand is how the supply of currency changes - are there a fixed number of Bitcoins in existence, or is currency simply "created" whenever a miner updates the blockchain? As time goes on, will the money supply expand at some rate roughly equal to the growth in transactions - is this kind of like how the supply of fiat money in most economies has grown over time?
Is there a single blockchain for Bitcoin, which contains a record of all the transactions made since the first transaction? If so, does that mean that the chain will just keep getting longer and longer as more transactions are recorded? If Bitcoin increases in usage and popularity, won't the blockchain continue to grow (maybe exponentially) and will that add to the complexity of the miner's task?
This may be too complex to explain to an average person like me, but how do transactions actually get coded/added to the blockchain? I know that it requires brute force computing power and is based off of cryptography, but that's really the extent of my knowledge... If I wish to transfer 100 coins to my friend, that simple transaction must be captured somehow and translated into the chain - but how is this translation performed? Is there a constantly-changing key that has to be iteratively solved for by the miners? If a person were to "look" at the blockchain (I assume this is possible) - what would it look like, just a seemingly random collection of characters?

I'll stop there, as I'm sure there aren't simple answers to these questions and I'm sure I've misused/misinterpreted terminology and how these things actually work. Many thanks to all who read my question, and special thanks to anyone who is willing to answer one or more of my questions. If there is a better forum for me to post beginner's questions like the ones above, I'd certainly like to know that as well.


texts: What happens to unclaimed Open Assets (colored coins) asset quantity units?

texts:
I'm trying to understand the Open Assets transaction example given here.

Everything makes sense, more or less, until the end of the description:

  Output 6 receives the first 3 units of input 5. Input 5 has the asset ID A2 so the asset ID A2 is assigned to output 6.

What happens to the remaining 6 units of Asset A2? The unit count starts at 9 for input 5, and output 6 claims 3 units. That leaves 6 units unaccounted for. Input 5 is spent after this transaction, so it's not clear how it can be reclaimed.

What am I missing?


texts:
With 100% segwit transactions, what would be the max number of transaction confirmation possible on a block?

And, how many utxo can be updated by a block full of segwit transactions?


texts: What means this: "Transaction rejected by our node. Reason: Non-canonical signature: High S Value". It came after trying to send BTC to my new Qt-wallet from old synchronised wallet (version 0.8), which was restored to status about 1 month ago by copying backup wallet.dat file.


texts: Bitcoins disappeared on import into Electrum

texts:
A few years ago I received some bitcoin in Bitcoin Core (~0.4 BTC). Then I transferred some to Kraken (~0.1 BTC) and a few weeks later transferred some back (~0.1 BTC). Then I backed up wallet.dat and formatted that computer.

Now I wanted to sell these bitcoins. I opened the wallet by putting wallet.dat into the correct directory and then running bitcoin-qt -rescan. Bitcoin Core is not synchronized. For some reason it only shows the initial inward transaction of ~0.4 BTC (even that time range is not yet synchronized), but not the other ones.

Then I used listaddressgroupings, which gave me one address and used dumpprivkeys to export the private key for it. I pasted that private key into Electrum. After synchronizing, Electrum shows the initial inward transaction of ~0.4 BTC, but also an outward transaction of the entire sum 2 months later.

Stealing my wallet.dat would have been extremely difficult, because my computer is encrypted and I strictly run Debian with only software from the official repository. Even if the money got stolen the smaller transactions to and from Kraken should show up in Bitcoin Core and Electrum.

I'm a software developer, but I don't know how Bitcoin works specifically. Does anyone have any ideas what could have happened to my Bitcoins?


texts: Determine which transaction spent a Transaction Output

texts:
I will explain my question through an example on the bitcoin testnet network.

I am looking at the output at index 0 of this transaction:

2a50bcc2ec49573ef816a95781b802766910f8690968236cf451cfc32defc491

I can tell through the bitcoin testnet block explorer that it was spent in this transaction:

7b1b3788ae4251d164031f899ba4e81f6371f70c24e71d38b03d44292ada9c81

Is there a way to use the bitcoind RPC methods to determine that it was 7b1b3... that was the transaction that spent this transaction output?

Thank you!


texts: What are the odds of discovering a block as a solo miner?

texts:
I understand that during mining, one does not discover individual coins, but rather blocks of coins, and I heard that one block equals many coins (but how many?). I am wondering though, as a solo miner, what are the odds of discovering a new block? I guess this depends on my hardware but if we say that a GPU is 10 times faster than a CPU, and a $10 USB ASIC device is 1000 times faster than a CPU, and a $300 mining box is 5000 times faster than a CPU, perhaps one can adjust the odds estimations to reflect that.

Also, how many BTC would I obtain if I discovered a block?
This website http://blockexplorer.com/ seems to how a variable number.
But it seems a bit like winning a lottery.


texts:
I want to Buy something using bitcoins but I am not sure how to put bitcoins in my "Wallet".

Could somebody please help me?


texts: Bitcoin Client API-RPC: Efficient way to list transactions from a list of addresses

texts:
In the API CallList:
https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list

You can pass an address as a parameter to "listtransactions" to get the latest list of transactions from an address. What if I would like to get the most recent 25 transactions from a list of 20 addresses. Does this mean I have to make the "listtransactions" call 20 times and then sort the end results?

Calling the API endpoint 20 times is fine, my problem is that if we needed to do pagination that will become very unmanageable very quickly, because it is really hard to determine what is transactions 26-50 from 20 different addresses

Thank you

EDIT:
I found that BlockchainInfo offers a very convenient endpoint for this:

https://blockchain.info/api/blockchain_api

Endpoint: http://blockchain.info/multiaddr?active=$address|$address (Multiple addresses divided by |)
However, this only returns "txs":[--Latest 50 Transactions--]
and, this does not allow you to do an offset (for example, to get transaction 51-100)


texts: Sent bitcoins to my unencrypted wallet and encrypted the wallet before file synced, is there any way i can get them back?

texts:
Thanks in advance for any light you can shed on my problem..

I think I sent bitcoins from an online wallet to my offline wallet BitcoinQT(0.81) in august.
The transaction has been confirmed, but not redeemed, (due to my offline wallet not being synced i believe)
I encrypted today, before bitcoinqt had completed initial sync.
Now i've just realised that I've probably lost the associated change address in the unencrypted wallet. as the address it was sent to was not the same as the receive address that showed in bitcoinQTfrom the unencrypted wallet.
i have no backup of the unencrypted wallet.dat

Questions:

Q1. Am I correct that i've lost my bitcoins?
Q2. Does bitcoinqt overwrite the wallet.dat file when it encrypts the wallet? or does it create a new copy, such that I may be able to recover the old wallet.dat using recovery sw like testdisk?
Q3. If answer to Q2 is not overwritten, what is the likelihood of being able to retrieve the unencrypted wallet.dat or change addresses considering the bitcoinqt client was syncing/processing blocks for about 20mins before i shutdown?
Q4. Would it be possible to recover the wallet.dat from the app data folder in a system restore (winxp)?

Thanks again,

22/11/2013

Update Q1: Looks likely that i've either sent them to a different wallet - or my blockchain.info account (with 2FA) was hacked. :(
Update Q2: Bitcoinqt does not immediately overwrite the unencrypted wallet.dat after encrypting the file.
Update: Q4: It may have been possible to recover the walllet.app from the app data folder in system restore (but i didn't have this enabled)
Lesson learnt? too early to say, but always keep a backup...


texts: Never having owned bitcoins I don't know how bitcoin wallets work and I'm wondering: if I buy bitcoins, what will I need to know about the software involved, and where should I keep my bitcoin wallet?  I have a home computer and I have a Google account.  Can the latter be used?  What security issues are involved?  If I'm travelling and far from home, how would I have access to my bitcoins?


texts:
I'm new to the concept of crypto currencies but I understand the basics , I'm developing a website that will enable users to exchange their crypto currencies , it works like this

User x sends Bitcoins (or any other type) to website Bitcoin address
User y sends litecoins (or any other type) to website Litecoin address
Website sends Bitcoins to user y Bitcoin receiving address , and sends litecoins to user x receiving address

I know how to send Bitcoins , using an API like inputs.io or blockchain.info , but I'm wondering about all the other types (Anoncoin for example) , how can I send coins to receiving addresses ? can I use inputs.io or blockchain.info for coin types other than Bitcoin ? or does each one has its own API ?


texts: Recommended way to automatically retry sending of bitcoin via JSONRPC upon failure

texts:
Sometimes when sending bitcoin out, sometimes bitcoind's JSON-RPC replies with a 500 error. I'd like to safely automatically retry, but it seems that there's not way to set a nonce to safely retry.

I have some complicated ideas to be able to retry in a safe way, but I imagine something like the nonce is easiest. Any safe ways to retry out there?


texts: What are the best practices to close and reopen channels in order to increase capacity

texts:
I am new in the lightning so I opened a small channel with 50k sats to get started. After some research and try-and-error I would like to increase the capacity of this channel. I know that this is not possible and the only way to do that is to close the channel and open a new one since having a double channel with the same node is not recommended.
In the meanwhile a payment has been routed with this channel, so my local balance is 10k sats and in the remote balance is 30k (10k sats are gone on fees). If I close the channel now I will only get 10k sats minus fees. I will lose more than 80% of my initial amount!
The only thing I can think of is doing a rebalance of the channel so the most of the capacity is on my side and then close the channel. But since it only has 50k sats I cannot do a loop in (minimum 250k sats), or balance of satoshi (minimum 50k sats). Circular rebalance fails all the time. As an alternative I can create an invoice and route it to my self as described here (https://github.com/lightningnetwork/lnd/pull/3736).
But is it ok what I am doing? Is there a cheaper (smarter) way?


texts: How many times of validation needed for a whole payment transication?

texts: I try to figure out it. So far, I believe there are 3 times, in wallet before broadcast, before accept to mempool by node, before accept a new block created by other node. I don't believe it's all. Maybe before mining to construct a new block need a validation. Anybody clear about it? What's the different for those validations?


texts:
I'm running bitcoind (086) on a dedicated linux machine with about 35Gb of disk space. Earlier today I discovered the machine ran out of space (blockchain was 33 gigs) and proceeded to delete the whole directory. Now all bitcoins in the wallet are missing, balance shows 0, although I did back up and restore the wallet.dat file.

Is it normal for the blockchain to grow to that size?

Is there another way to clean it up periodically, say, via a cron job?

Should I keep hoping that the missing coins will return to the wallet somehow, maybe after it downloads the blockchain again?

TIA!


texts: Why are only specific transaction types accepted into the mempool?

texts:
In the Bitcoin Mainnet, only specific transaction types are accepted:

  Bitcoin uses a scripting language to specify (and satisfy) the encumbrances, thereby allowing a whole host of transaction types. Although many transaction types can be represented in the scripting language, only a limited number of standard transaction types are actually accepted by the network and the miners. (source)

What is the point of equipping Bitcoin with a scripting language, while only accepting a pre-defined set of transaction types? What harm could be caused to the network by accepting valid transactions with an arbitrary locking script?


texts: How to integrate 0-conf BCH payments into a web app?

texts:
I am currently working on a Bitcoin Cash related project with the goal of helping contribute to the ecosystem. I am getting to the point where I will soon be ready to start integrating with the protocol, but I am not quite sure how to proceed. The workflow I am looking for goes something like this:

User visits my website
User is presented a QR code that is for a specific payment amount (always $0.25 usd)
User scans QR code and submits payment
Website is listening for the broadcast of the payment (0-conf), and as soon as the network broadcasts the payment, a callback is executed therefore the user's session knows that their payment has been received.

I know the Bitcoin Cash Fund project is currently working on a bitcoincash.js library but it's not ready yet. Since that is the case, I assume I am going to have to fork the current bitcoin core js library and make it work with the cashaddr format to generate addresses for the QR codes.

The other piece that I am unclear about is how to go about listening for broadcasted txns. I see there is a blockchain.info websocket server, which I assume since they announced full support for BCH, that it will work with BCH:
https://blockchain.info/api/api_websocket

But, from what I can tell, I don't think it's possible to use the testnet?

So that is making me wonder if relying on a 3rd party for this, especially with it being 0-conf, is a bad idea? If so, I assume the answer is to run my own node and somehow have my own websocket server query it at regular intervals. Is that correct?

Also, on the topic of pub/sub for this, what is the best way for the client know a payment was made for that specific user? Is it to just generate a new address with each visit to the site? Or is it to include some sort of uuid as metadata with the txn?


texts: How much extra disk space does txindex=1 require?

texts:
For example for a 1 MB block, does the extra Tx index database take up another 100 kB on average?

And a follow-up: once my node has completed -reindex after setting txindex=1 can I COPY the blockchain AND the TX index database together to other nodes? I know the blockchain can be copied but I'm not sure if the new node needs to reindex the blockchain itself or if the index database copies over as well.


texts: How does one make multisignature transactions with the bitcoin client?

texts:
With the release of bitcoin version 0.6.1rc2, it is now possible to do M-of-N required signature transactions in the main network. But how does one actually perform such a transaction?

I've been trying to piece together how to do this mostly from the BIP 11 and API calls list pages on https://en.bitcoin.it/wiki/

I guess you can use 'addmultisigaddress' call to bitcoind to add a multisignature address to your wallet and then send coins to that address. This is the part you set up, say, an escrow.

However, I can't find the bitcoind call to create a transaction for multiple signing or the call to sign such transaction.  In other words, how do you send coins from a multisignature address? How do you release the tied-up coins?


texts: How to recover Bitcoin cash from Coinbase

texts:
I had a small bit of Bitcoin at Coinbase before the split. After the split, I moved a few Bitcoins to Coinbase, all of which were mined before the split. Now that Coinbase supports Bitcoin cash, they are only showing the small amount I had transferred before the split. The amount I transferred after the split but before they supported BCH is not showing up. I installed Bitcoin ABC and imported my BTC wallet and after synchronization, it shows 0 BCH. I can see the transaction to Coinbase in the transaction window. How do I recover the BCH? Is it even possible? I tried to contact Coinbase, but right now they are only answering account security and compromise related questions.
Thanks
Ali


texts: How does a wallet come to know of Address just by importing Private key?

texts:
I have exported my Private key to Paper Wallet. Now, when we send/receive bitcoins, we send/receive them to an "Address". So suppose I receive some bitcoins on my address. I have the private key of this address. Now I want to spend the bitcoins I received at my address. For this I need to import my private key to some wallet. Am I right?

And even though I'm importing my private key to the wallet, how will the wallet know what is my "Address"? Because I'm just importing the Private key, not address. Is address derived from private key?

I'm confused with this.


texts: I've sent a small low priority transaction with insufficient fee with blockchain.info wallet, what will happen next?

texts: I've sent a transaction which has a <0.01 BTC output, with zero fee using blockchain.info Android client. It is not being relayed (violating memory pool rules of bitcoind). What can I do to recover the Bitcoins that participated this transaction?


texts: Constantly monitor bitcoin wallet using Python/Django?

texts:
I am building a site with python/django, running bitcoind in the background. I need to constantly check all addresses in the wallet to do a sql insert statement to my database whenever an incoming transaction is received, and maybe send some funds out in certain cases.

My site is working ok, and I wrote a python script that runs separate and uses a simple while true loop to achieve this. The problem is, when the script is running, it takes up too much memory and the site times out when I reload it. How to avoid this? I really need a background process running at all times. I am trying to use threading in the script, but it still seems to hog too much memory.

I thought about running bitcoind with the same wallet and the script on a separate computer, but I heard that is a bad idea.

Thanks.


texts: What additional benefits can QR codes bring to Bitcoin applications beyond payment requests?

texts:
Anyone who has recently used one of the Bitcoin wallets on a mobile device (and some desktop  clients) will have seen a Bitcoin QR code. Clearly, QR codes allow for a succinct method for transferring complex information in a reliable and error-resistant manner.

Naturally, the most obvious use of a QR code is for encoding a payment request URI. However, are there any other benefits that QR codes can bring to Bitcoin beyond this?

I'm thinking in terms of marketing, exotic transaction types that sort of thing.


texts: How does a blockchain relying on PoW verify that a hash is computed using an algorithm and not made up by a human?

texts: How does a blockchain verify that the hash provided (the one with the leading zeros that is supposed to be unique, computed using lots of processing power) is indeed unique and that it wasn't just a random number some one came up with and then just added the expected leading zeros to it?


texts: Why can the same 12 words produce different seeds in an Electrum wallet file?

texts:
I was looking through an Electrum wallet file (from Electrum 1.9.6 for Windows if it matters) trying to understand what information was contained in it, and I couldn't initially figure out exactly where the private keys were stored (or even if they were perhaps stored in some other file).  I'm guessing the "seed" field in the default_wallet file contains sufficient information for the private keys, public keys, and 12 word mnemonic to be generated.  Am I right so far?

To experiment a bit more, I wanted to see if 2 wallet files that use the same 12 word mnemonic would be identical.  Not surprisingly, when I did not encrypt the wallets, the same mnemonic appeared to lead to identical wallet files.  However, I also tried encrypting each wallet with the same password, and to my surprise, the files had different values in the "seed" field.  This surprised me, so I'm wondering if this is expected behavior and why is this happening?


texts:
I'm experimenting with LTC p2pool mining. However, it generates lots of micropayments (0.02 LTC). Such small payments generate big transaction fees (in latest litecoin-qt from github). Example: 0.6 LTC transaction fee for sending 0.3 LTC.

How can I avoid such big transaction fees?


texts: How does bitcoind generate a new address if the wallet is encrypted

texts:
Suppose that my wallet is encrypted with a passphase and currently I have not provided bitcoind with the passphrase to access the private keys section of the wallet.

If I enter:

bitcoind getnewaddress

It prints a new address, say [someaddress], but where does it store the private key that goes with it?

If I enter:

bitcoind dumpprivkey [someaddress]

I get an error message since I have not provided the wallet passphrase.

But if I first provide the wallet passphrase and then try dumpprivkey it shows the private key.

When I asked it to get a new address, I had not provided the passphrase, so how it store the private key?


texts: Noob Question: Trading Fluctuating Currencies

texts:
My 1 bitcoin was originally worth $16,000 USD but is now worth $17,000 USD. Ignoring fees and the fluctuation on XRP, does this mean my 1 BTC will get $17,000 USD worth of XRP or $16,000?

I ask because I'm hearing that the smart thing to do would be to keep my appreciated BTC instead of changing it for XRP, but I want to make sure the "loss" would only take place if XRP did not appreciate at the rate BTC will and not at the point of trade.


texts: How do I chose the address to send to in Electrum? Can i send from a new made address with no transactions?

texts:
How do I chose the address to send to in Electrum?
(for Electrum) Can the seed recovery mechanism in Electrum be bruteforced?

2.1. Since any seed makes some especial addresses (correct me if i'm wrong), (if someone see those) isn't that a way to eliminate the possible words in a seed?
Can I send from a new made address with no transactions? If yes, will that makes my transaction anonymous? (Are the coins connected to the received addresses?)
Is there a way to send Bitcoins completely anonymously?


texts: Which crypto currencies can merge mine with Bitcoin?

texts: I remember namecoin has the ability to merge mine with Bitcoin. Are there any others? Is this a bitcoin ability or ability of the coin that is merge minable?


texts: What is the estimated size of complete blockchain when all bitcoins are mined. i.e around 2140?

texts: By size, I mean how many GBs or TBs of data storage I would need to save entire blockchain starting from Genesis block when all bitcoins are mined?


texts:
Complete Bitcoin noob here. What are the advantages of having a large network of miners on the Bitcoin network? Why not have a limited number of super-peers that comprise the network? Isn't that the direction that things are heading anyway, given that only a select few will have access to the dedicated hardware?

Edit: Edited my question to indicate I'm referring specifically to the number of miners on the network.


texts: Forgot to add transaction fee, any way to add it now?

texts:
Today I sent 1.5 BTC to an exchange but forgot to add a transaction fee, the Qt wallet didn't even prompt me with one and I just clicked on Yes. Now it's been over 2 hours and it's not confirmed (as you would have guessed).

I kinda needed it to reach the exchange quickly (I know, my fault), but now is there any way to speed this up or do I have to wait it out for days to arrive at the destination?

Thanks


texts: Someone said me that I should give him my wallet email and then he will request for the mine from the mining network, after that he asked that you will receive email from that u will get code which u have to send me and then invest your bitcoin wallet with 50$.And after some hours I will get the profit in my wallet. Is this a scam?


texts:
If for some reason I made a wrong transfer to an unknown blockchain account, how do I know who is that belongs to?

In the first place I think it is unlikely a "wrong transfer" because the Blockchain address is not something you can make typo error. I am very suspicious how people can transfer my btc out without my authorization.

Many thanks for answers.


texts: When I pay, how is my balance checked, if I use different address every time?

texts: I know there are quite similar questions, but none have addressed my issue. Let's say I use Electrum wallet, that generates addresses & keypairs from seed. So for every next transaction I use different private key, public key & address. So (as I understand) when I want to buy something I send my address encrypted with private key to recipient, he decrypts it with public key & then checks the blockchain to determine if I can afford the transaction. But since I use different address for every transaction, how is that possible? I don't see way to connect current transaction to all that came before.


texts: What is a megahash and how is it used to estimate the rate at which bitcoins are mined?

texts: What part of the bitcoin network requires hashes and why? What is the relation between money and the megahashes a card can do?


texts: Can I send bitcoin from paper wallet directly to hardware wallet?

texts: Can I send bitcoin from my paper wallet to my hardware Ledger wallet without using blockchain wallet?


texts: Pending transaction shows as confirmed on blockchain explorer

texts:
I'm using a MultiBit wallet (version 0.5.1) and a transfer from Coinbase to the wallet has been showing up as unconfirmed since March 18th (16 days).

Checking the transaction on the ledger, however, shows that it's been confirmed and completed. I've restarted the wallet, my computer, clicked "repair" and still nothing.

How can I go about attempting to get my transaction finalized?


texts: Bitcoind suspend when Synchronizing blocks

texts:
My bitcoind started synchronising blocks. The bitcoind version is 0.93. When the bitcoind found an orphan blocks in the synchronising process, it seems stop and did not work. the message from the log like this:2015-01-08 06:08:19 ProcessBlock: ORPHAN BLOCK 184, prev=0000000000000002d79cd7069cedd05f49716354590bd5518b18a513b3b4d513

I need restart it and it would continue synchronising. This case happens many times. sometimes the bitcoind found orphan blocks in the synchronising process, it would continue work.  I don't where is wrong. Any ideas? Big thanks.

note: my system is CentOS


texts:
I installed Bitcoin Armory on Ubuntu 13.10. I get the following output when I try to run it:

root@cloud-server-07:/BitcoinArmory# python ArmoryQt.py
********************************************************************************
Loading Armory Engine:
   Armory Version:       0.91.1
   PyBtcWallet  Version: 1.35
Detected Operating system: Linux
   OS Variant            : ('Ubuntu', '13.10', 'saucy')
   User home-directory   : /root
   Satoshi BTC directory : /root/.bitcoin/
   Armory home dir       : /root/.armory/
   LevelDB directory     : /root/.armory/databases
   Armory settings file  : /root/.armory/ArmorySettings.txt
   Armory log file       : /root/.armory/armorylog.txt
   Do wallet checking    : True
ArmoryQt.py: cannot connect to X server

Does anyone have any idea why?


texts: How do you sweep a paper wallet with Bitcoin-Qt?

texts:
Sweeping involves importing a private key, then sending it's entire balance to a new address in your wallet via a new transaction.  This would protect your paper wallet's bitcoins from being stolen if someone else ever had access to your paper wallet, or obtains access to your paper wallet in the future.

I'd love to know all the nitty-gritty steps involved with Bitcoin-Qt.


texts: Is there some way to merge two wallets or to import/export addresses?

texts:
I've got one wallet.dat from my laptop and another on my desktop, each containing various (different) receiving addresses that I use pretty often. I'd like to merge them into a single wallet.dat so I can see all my balances in one place.

If there isn't some piece of software that can truly "merge" the two, is there some way to at least export an address/keypair from one wallet and then import it into the other?


texts: I sent money to a bitcoin wallet from Blizzcoin and there's nothing there?

texts: Using blizzcoin.com I sent bitcoins to the address I have for the bitcoin wallet client, and it took forever to sync the blocks. Once it had finished I was expecting to see the money there, but saw nothing.  Can anyone explain or tell me how to resolve this?


texts: Compiled Bitcoin Client as Testnet with bitcoin.conf

texts: I'm quite new to bitcoin. I've been compiling the client from github and I want to run on a server as testnet and make some API requests. As I see in the documentation I should create a bitcoin.conf file. But where do I create this in case of compiled client


texts: Does the private key have special mathematical properties?

texts:
[I read that there are private keys with lengths other than 256 bit. I only talk about 256 bit private keys here. Are other lengths even common and supported by popular wallets like Electrum?]

Let's say I generate a private key privateKey0 using a key generator. Then I choose some number n ∈ [1, 10^10]. Given that privateKey0+n < 2^256, will privateKey1 := privateKey0+n be a good private key?

A good private key of course needs to be valid and as strong as one generated by a private key generator. This does not take into account that one of them being made publicly available can lead to the other one being publicly available. However, using both productively must not weaken their secrecy for the second one to be considered a good private key. So let's assume that their corresponding public keys and the addresses for these are generated and both of them receive some amount of money.

I don't know anything about Bitcoin private keys (but am aware that an instance of the wallet import format is just the result of an easy-to-do operation on a big number as described here). Do they have to have special mathematical properties or can I just choose any number ∈ [2^255, 2^256 - 1] and use it as a private key?

Some websites say that you can just use a random number. Are there any disadvantages to this compared to using a key generator?


texts: What is the wallet "word seed" that is commonly used in popular wallets clients and what does it do?

texts:
I've been using a pretty old version of Multibit classic and recently decided to upgrade. I tried out Multibit HD and Electrum and noticed that both have me set up a wallet with a "word seed". It's just a string of random words that is apparently used in an algorithm. The question is, what does it do exactly? Someone told me that it generates private keys for you, and all you need is that word seed and you will be able to restore/generate all your private keys. How does this work exactly? What algorithm is being use on the seed to generate the keys?
These words are apparently very important, as Multibit warns on their site:

To restore your wallet and recover your bitcoin, you must have your wallet words.
With your wallet words, you can recover your bitcoin. You must keep your wallet words safe, because anyone who knows your wallet words can steal your bitcoin.

The seed words seem to be a replacement for the private keys, based on what Multibit says about them. I'm personally quite attached to the idea of having my private keys, so why should I be content with this word seed instead? Some apparently think it's safe enough: Is 12-word seed phrase safe enough?, but is it usable enough?
These questions: Does a wallet containing multiple addresses have a single private key? and Why can the same 12 words produce different seeds in an Electrum wallet file? hint on what is happening here, but is lacking details. It seems the phrase is "hierarchical deterministic" wallets, hence the "HD" in "Multibit HD".
This question exactly articulates my concerns: Is it important to have an unencrypted backup of the private key?


texts: generate/generatetoaddress what are this two rpc methods used for?

texts:
can anyone explain what are this rpc methods used for:
1.generate
https://bitcoincore.org/en/doc/0.16.3/rpc/generating/generate/
from the introduction of generate mehod:

  Mine up to nblocks blocks immediately

but how? bitcoin is hard to mine, how can this method mine nblocks immediately?

generate nblocks ( maxtries )

Mine up to nblocks blocks immediately (before the RPC call returns) to an address in the wallet.

Arguments:
1. nblocks      (numeric, required) How many blocks are generated immediately.
2. maxtries     (numeric, optional) How many iterations to try (default = 1000000).

Result:
[ blockhashes ]     (array) hashes of blocks generated

Examples:

Generate 11 blocks
> bitcoin-cli generate 11

2.generatetoaddress
https://bitcoincore.org/en/doc/0.16.3/rpc/generating/generatetoaddress/

the same question as generate method

generatetoaddress nblocks address (maxtries)

Mine blocks immediately to a specified address (before the RPC call returns)

Arguments:
1. nblocks      (numeric, required) How many blocks are generated immediately.
2. address      (string, required) The address to send the newly generated bitcoin to.
3. maxtries     (numeric, optional) How many iterations to try (default = 1000000).

Result:
[ blockhashes ]     (array) hashes of blocks generated

Examples:

Generate 11 blocks to myaddress
> bitcoin-cli generatetoaddress 11 "myaddress"


texts: Will cryptocurrencies that have a finite supply (like 21m btc) cause deflation?

texts:
I figured out that cryptocurrencies can cause a deflationary spiral, since the cap is the same (eg. 21m BTC) but the economy is growing. That would only happen if all coins are mined.

But deflation would usually lead to a recession. Is there a way to prevent that?

I've done some research, like on the Bitcoin Wiki page deflationary spiral, but I don't seem to understand why deflation won't happen.

  The ‘deflationary spiral’ is a real condition that affects the popular fractional reserve backing system. Bitcoin is not affected by this because it is fundamentally different from popular currency.


texts:
I'm trying to learn how to programmatically interact with the Bitcoin protocol. I've, seemingly, successfully generated a private key, WIF, and public address with code. I used Coinbase to send .001 BT to 14egr6kfYY4xiSVPim2sJnED4t89Yvn8hQ. I then used the Bitcoin-Qt debug console and issued

walletpassphrase <WIF> More

to import the address. The address has shown up in Bitcoin-Qt but the transaction is not appearing.

Any help is greatly appreciated!


texts: Does mnemonic phrase contain everything in my wallet including future keys?

texts:
I am confused about something important ...
Most wallets allow wallet recovery using "Mnemonic phrase", but (in general) with this phrase, do I get access to all my data ? E.g future generated addresses that will hold my bitcoins ?
Another way to ask: is this the only thing I need to store or do I also need to export my actual wallet/keys when I generate a new address or receive new coins ?
I know each wallet works differently but I think this would be a general question.
If it matters, I noticed the Mnemonic feature on Electrum and Coinomi wallets.
Edit: how can Coinomi give me access to different coins using same mnemonic phrase ? Does this mean that it is more like a password to my data (data stored by them) and if their wallet service becomes unavailable I don't really have access to any of my different coins ?


texts: Initial blockchain sync stuck on block 237158

texts:
Stuck on block 237158. Rebooting doesn't work.
Do I need to start from scratch?
admin@raspberry2bit:~ $ sudo tail -f /mnt/ext/bitcoin/debug.log
2020-10-26T08:48:30Z Loading addresses from DNS seed dnsseed.bitcoin.dashjr.org
2020-10-26T08:48:30Z Loading addresses from DNS seed seed.btc.petertodd.org
2020-10-26T08:48:30Z Loading addresses from DNS seed seed.bitcoin.sipa.be
2020-10-26T08:48:41Z Loading addresses from DNS seed dnsseed.bluematt.me
2020-10-26T08:48:41Z Loading addresses from DNS seed dnsseed.emzy.de
2020-10-26T08:48:41Z Loading addresses from DNS seed seed.bitcoinstats.com
2020-10-26T08:48:52Z Loading addresses from DNS seed seed.bitcoin.jonasschnelli.ch
2020-10-26T08:48:52Z Loading addresses from DNS seed seed.bitcoin.sprovoost.nl
2020-10-26T08:48:52Z 0 addresses found from DNS seeds
2020-10-26T08:48:52Z dnsseed thread exit

admin@raspberry2bit:~ $ systemctl status bitcoind.service
● bitcoind.service - Bitcoin daemon
   Loaded: loaded (/etc/systemd/system/bitcoind.service; enabled; vendor preset:
   Active: active (running) since Mon 2020-10-26 16:47:23 CST; 21min ago
  Process: 672 ExecStart=/usr/local/bin/bitcoind -daemon -pid=/run/bitcoind/bitco
 Main PID: 680 (bitcoind)
    Tasks: 18 (limit: 4915)
   CGroup: /system.slice/bitcoind.service
           └─680 /usr/local/bin/bitcoind -daemon -pid=/run/bitcoind/bitcoind.pid

admin@raspberry2bit:~ $ bitcoin-cli getblockchaininfo
{
  "chain": "main",
  "blocks": 237158,
  "headers": 654013,
  "bestblockhash": "00000000000000fdd7d1d53f13da7654e80a645a7ea09a5763b62ff6355fe61b",
  "difficulty": 11187257.46136079,
  "mediantime": 1369114906,
  "verificationprogress": 0.03152660781442522,
  "initialblockdownload": true,
  "chainwork": "000000000000000000000000000000000000000000000043f4c527c060c0911f",


texts: Remote SSH connection to Raspibolt Lightning Network Node

texts:
I am trying to establish a remote SSH session using Putty into the Raspberry Pi running my Lightning Network node without success (connecting from the local network works fine).

The related port of my fixed IP is open and seems to correctly forward to the Raspberry, however, when I try to connect with Putty, the connection is rejected ('Server unexpectedly closed connection.').

Can anyone more familiar with such setups help me figure out how I can connect with Putty?


texts: What's the maximum size of the memo in a LN payment request?

texts: What is the maximum size of text held in the memo portion of a lightning network payment request?


texts: Tracking incoming transactions using nodejs and own node

texts:
I need to verify that user from my database has sent btc to my wallet.

Ideally I want to generate a unique address for each user transaction and then track all those addresses but I suppose it will be difficult to implement due to address gap limit, so I decided to just ask users for their bitcoin address and then expecting tx with funds transfer from that address to my wallet so I can verify funds were sent by them.

I have own bitcoin node which I want to use for tracking all the transactions to my wallet.

So let's say I want to track all txs just to my wallet address.

I was following the guide how to implement this with ZEROMQ. I've updated bitcoind config file with to can listen for raw txs via zeromq.
There are my nodejs code:

const bitcoin = require('bitcoinjs-lib');
const zmq = require('zeromq');

const sock = zmq.socket('sub');
const addr = 'tcp://127.0.0.1:3000';

module.exports = function (app) {

    sock.connect(addr);
    sock.subscribe('rawtx');

    sock.on('message', function (topic, message) {
        if (topic.toString() === 'rawtx') {
            let rawTx = message.toString('hex');
            let tx = bitcoin.Transaction.fromHex(rawTx);
            let txid = tx.getId();

            const address = bitcoin.address.fromOutputScript(tx.outs[0].script, bitcoin.networks.testnet);

            console.log("address ", address)
            console.log('received transaction', txid, tx);
        }
    });
}

As I understand, when I connect to node in live network from this code, I'll be notified about all txs that are happening in the network?

How can I validate transactions with transferring funds only to my wallet and decode address from which funds were transferred?

Are there some easy ways to implement this and maybe some code/project examples?


texts:
What is the difference in the Bitcoins Improvements Proposals between the final status and the active status?
According to the wiki

An Proposed BIP may progress to Final only when specific criteria reflecting real-world adoption has occurred. This is different for each BIP depending on the nature of its proposed changes, which will be expanded on below. Evaluation of this status change should be objectively verifiable, and/or be discussed on the development mailing list.
A process BIP may change status from Draft to Active when it achieves rough consensus on the mailing list. Such a proposal is said to have rough consensus if it has been open to discussion on the development mailing list for at least one month, and no person maintains any unaddressed substantiated objections to it. Addressed or obstructive objections may be ignored/overruled by general agreement that they have been sufficiently addressed, but clear reasoning must be given in such circumstances.

However they seem to be interchangeable to some sense. I am particularly interested for the BIP 0112 (OP_CHECKSEQUENCEVERIFY), because of the application of the Lightning Network. Its status is final. Should I assume this OPCODE is already usable and will be/is the one used for the implementation of the Lightning Network?


texts:
I know we don't have to worry about this for a very long time, but...

One argument against Bitcoin, and really, digital currencies as a whole, is that, in order to time blocks with reasonable predictability every 10 minutes throughout the life of the system, the resource cost of blocks (e.g. processing power and electricity) increases over time. This system thus assumes that the available processing power will always be increasing and that the cost of electricity necessary to operate that processor will be less than the revenue from block reward plus transaction fees, that mining will be profitable.

If the difficulty never stops increasing, what happens if increased resource costs cause mining to be unprofitable?


texts: What does a merchant need to do to reject RBF transactions

texts: I understand replace-by-fee transactions are no threat to merchants who require multiple confirmations. However many businesses still accept 0 confirmation transactions as a means of improving usability and help with marketing. I expect demand for 0 confirmation transactions to continue (at least for transactions with a value below a certain economic threshold). What is the easiest way to automatically reject all RBF transactions?


texts: How do bitcoin clients update after downtime?

texts: If a bitcoin client goes offline or misses a new block, what is the process of finding the current, main blockchain? And how does bitcoin ensure that updates to the blockchain will be propogated to each device connected to the network (i.e. to make sure connected nodes never have a missed block in the ledger?) Does it somehow recursively backtrack from the next broadcasted block's reference to the previous block? And then how does it ensure that the current chain broadcasted is an addition to the main chain, rather than some fork? For example, if the client connects to the network and receives a block of given height, how does it both know that it has the most work of any chain, and that the local copy contains all blocks in the chain?


texts: Trying to open an old wallet.dat (from ~2013)

texts:
I found my old wallet.dat file taken from the bitcoin core wallet I used when mining around 2013, nothing serious tho, just fiddling around. Never been too much into the subject, and now I'm totally out of the loop.

Will explain what I did so far:

I downloaded the latest bitcoin core, opened it and after a few seconds closed it properly, replaced the default wallet.dat file (with a size of 1416kb) with a copy of my old one (only 88kb) and opened the program again to let it download blockchain, then noticed that as soon as the program opened, the wallet.dat (my old one) file size changed to 688kb, waited for the  whole blockchain to download and noticed the balance it's still 0, the send/receive/transactions screens are also blank, as a vanilla wallet.

Maybe my old wallet file is somewhat an old format and get's erased and treated like a new one?

I put back the default wallet created by the program and from inside the program opened my old wallet file, a small window with a progress bar appeared saying "opening wallet filename", but it keeps loading forever. Also the file size changed again from 88kb to 688kb.

Any clue of what is happening?

I wan't to transfer whatever is there to some online wallet like coinbase.


texts:
How does a miner choose which transactions go into the next block?
Do all transactions go through or is there a lottery process? I understand transactions with higher fees are given priority.


texts:
On the bitcointalk forum, evoorhees wrote:

  For a long time people said the "waiting for six confirmations" was a
  significant drawback, but most people understand that problem has been
  almost entirely eradicated.

and Revalin replied:

  as you mentioned we have an elegant potential solution to the
  confirmation delays, though I haven't seen any moves to actually
  implement it yet

How has the problem of waiting for confirmations been eradicated?  What is this elegant potential solution?  The first quote seems to imply the problem is already solved, whereas the 2nd says the solution hasn't been implemented yet.  Which is it?


texts:
I'm new to Bitcoin, so I'm grateful for anyone's patience with my perhaps uninformed questions.

I live in NYC and I'd like to buy some Bitcoin.  I understand that due to a recent law, exchanges aren't operating here, but there are several ATMs.  Is there a downside, other than the service fee, to the ATMs?  I'm prepared to lose some money on that, especially since it doesn't seem to be possible to purchase them another way here. Ultimately, this is a gift for my husband, and we see it for the high risk investment that it is.

Assuming I do purchase some at an ATM, what happens next?  I know I come across like a total idiot, but I really haven't figured that part out yet.  How do I keep track of them?  Where do I store them?  How could I give them to someone else?


texts: What is the collective name for Bitcoin, Namecoin, etc?

texts: Is there some standard term to describe all Bitcoin-like internet currencies, like Solidcoin, Namecoin and so forth? Like "currency" is to dollar, euro, yen, etc?


texts:
I often see the 51% attack described by saying that if Bitcoin is presented with two conflicting chains, it will select the longest one.  This would seem to work because difficulty only re-adjusts at certain block intervals, meaning more hash power makes mining faster possible, until difficulty adjusts, at least.

On PoS type coins, difficulty re-adjusts every block, so even if you bring a bigger gun in terms of more coin or coin-age, you should theoretically, even on a shorter scale mint the same numberof blocks as the 'main chain'.  So if there is no 'longer chain', how doe PoS select a winning fork in the case that one occurs?


texts: Is there an API that supports different Bitcoin wallets?

texts:
Is there an API that has sending and receiving functionality of different Bitcoin wallets such as Coinbase, Bitcoin wallet, etc...

Or would I have to manually incorporate each wallet API myself?


texts: Sensitive information stored in contracts

texts:
Is it a good idea to store some sensitive data on the blockchain contracts? For instance, i want to make a contract that stores vouchers (that cost real $$) and once the user pays to the contract for the voucher, the voucher is sent to the user. Let's imagine that the vouchers are just random numbers. Are the vouchers secure on the contract in this case?
I'm asking this because i've seen some controversial claims about sensitive data posted on blockchain. First one being the public image that everything is public on the blockchain, hence how the blocks are being validated. The second being that data is secure and strongly hashed which makes me wonder if this type of contract can work out. Thanks in advance, I'm new to blockchains and very interested in learning about this technology.


texts: where is the adjustment calculation for the target value in the source code?

texts:
Can someone point me to the source code and explain how the average is calculated for the adjustment of difficulty that takes place every 2016 ?
Update: i have consulted with previous questions but it has not been documented properly and I am not expert so would be much appreciated.


texts: Writing a GPU Bitcoin mining client (learning purposes)

texts:
I want to write a basic GPU miner from scratch for learning purposes.
By "from scratch" I don't mean that I am unwilling to use libraries but I want it to be similar to real GPU mining software, and I want to learn in-depth from this.

More specifically:

I want to write a functional GPU mining software.
It should mine with a pool (I was thinking a pool that uses stratum but other protocols are fine).
It should be similar in efficiency to GPU mining software currently in use. (This isn't required but I would like to learn how it is done in "real life")

I know python and java, and I can learn C if required. I know how Bitcoin mining works in general, but don't know the details of GPU mining algorithms communication protocols etc.

I was wondering where I should start. Where can I find libraries and general information about this process? Is this even possible or is it too difficult for one person?
I know I can use google but I don't know where to start.


texts:
I sent a small amount of BTC to someone and she was notified within seconds.  But the first confirmation did not happen for ten minutes or so.

What is the chance that this transaction could fail between the notification and the first confirmation?

Does it all depend on how well I try to double-spend?


texts:
i'm attempting to verify a checksig from a transaction in the live blockchain. it is failing on my debian jessie pc with openssl 1.0.1k, failing on my ubuntu 12.04 virtual machine with openssl 1.0.1 and validating correctly on my debian wheezy pc with openssl 1.0.1e. both are using the same code. the transaction is the first instance of a SIGHASH_NONE in the live blockchain. i calculate the "message" (tx) hash as:

hex: 2c7ecdcb2381e657228284398f2f66b2d7d9cf6aa1bd8e39a7300d0b3c8cfa5a
same thing in base58: 3zh5uvKWoRjFgKMSLRVqEWXB6YVLsuDKo97yCsCJZ2wB

the signature is:

hex: 30440220bb4fbc495aa23babb2c2be4e3fb4a5dffefe20c8eff5940f135649c3ea96444a022004afcda966c807bb97622d3eefea828f623af306ef2b756782ee6f8a22a959a2
same thing in base58: 381yXZvFc5V2dx81gRNNpj7ResKUgWA92mkTefemM9gM2kW37b3DGkV5v2BsFq94pSuH1E4jHq9ScHcp6T7Mfg41a7rbZCnd
note that this signature does not have the 02 hashcode appended to it

and the pubkey is:

hex: 04f1939ae6b01e849bf05d0ed51fd5b92b79a0e313e3f389c726f11fa3e144d9227b07e8a87c0ee36372e967e090d11b777707aa73efacabffffa285c00b3622d6
same thing in base58: SJa4B8CrqDs6St5KaXMm4KCCksaT7RDcCaRDyKSD6Mbu1WzSwokEq3JwGtfZRz7by6jYD5QmuVhgqsPYc6wTijQq
converts to bitcoin address: 145YPBBWRj4aquewvx59SAWNrSZFT5rvxr

could someone tell me if these parameters pass the ecdsa verification or not? also if anyone knows of an online validator that would be helpful.

i'm trying to verify this with the jsonrpc client but it doesn't work on any machine i have:

#!/usr/bin/env python2.7

from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
rpcuser = 1
rpcpassword = 1
rpc_connection = AuthServiceProxy("http://%s:%s@127.0.0.1:8332" % (rpcuser, rpcpassword))
message = "3zh5uvKWoRjFgKMSLRVqEWXB6YVLsuDKo97yCsCJZ2wB"
sig = "381yXZvFc5V2dx81gRNNpj7ResKUgWA92mkTefemM9gM2kW37b3DGkV5v2BsFq94pSuH1E4jHq9ScHcp6T7Mfg41a7rbZCnd"
addr = "145YPBBWRj4aquewvx59SAWNrSZFT5rvxr"
res = rpc_connection.verifymessage(addr, sig, message)
print res

output:

False

maybe i'm encoding the message or signature wrong for the rpc client? i tried passing binary encoded data to it, but it didn't like that:

File "/usr/local/lib/python2.7/dist-packages/bitcoinrpc/authproxy.py", line 125, in __call__
    json.dumps(args, default=EncodeDecimal)))
  File "/usr/lib/python2.7/json/__init__.py", line 238, in dumps
    **kw).encode(obj)
  File "/usr/lib/python2.7/json/encoder.py", line 200, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/usr/lib/python2.7/json/encoder.py", line 263, in iterencode
    return _iterencode(o, 0)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xcd in position 2: invalid continuation byte

verifying with pybitcointools works on all machines:

from bitcoin import *
import binascii

msg = "2c7ecdcb2381e657228284398f2f66b2d7d9cf6aa1bd8e39a7300d0b3c8cfa5a"
# make sure to include the 02 hashcode on the end of the signature here!!
sig = "30440220bb4fbc495aa23babb2c2be4e3fb4a5dffefe20c8eff5940f135649c3ea96444a022004afcda966c807bb97622d3eefea828f623af306ef2b756782ee6f8a22a959a202"
pub = "04f1939ae6b01e849bf05d0ed51fd5b92b79a0e313e3f389c726f11fa3e144d9227b07e8a87c0ee36372e967e090d11b777707aa73efacabffffa285c00b3622d6"
msg = binascii.unhexlify(msg)
print ecdsa_raw_verify(msg, der_decode_sig(sig), pub)

output:

True


texts: What command can i use instead of `ListAccounts`

texts:
In documentation said: "listaccounts will be removed in a later version of Bitcoin Core"

https://bitcoin.org/en/developer-reference#listaccounts

  In "See Also" section:

  GetAccount - Not return list accounts
  GetAddressesByAccount [deprecated]
  ListReceivedByAccount [deprecated]

Are we have a alternative command ?


texts: What is the significance of version byte and address checksum in version 1 Bitcoin address

texts:
Pay to public key hash is used in version 1 bitcoin address. Bitcoin address is calculated by sha-256 -ing the public key followed by ripemd160- ing the result. The result can then be encoded in base 58 after 3 more steps as shown in https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses
Version byte and address checksum are added to the ripemd which yeilds same result without them-

This:
010966776006953D5567439E5E39F86A0D273BEE

And this:
00010966776006953D5567439E5E39F86A0D273BEED61967F6

Yeilds same result when encoded, then
Why is that done?


texts: Why am I getting only about 3k to 300k hashes per second?

texts:
I have written a python script to mine bitcoin.

I am however getting only 3k to 300k hashes per second

Here is the code:

import time
import hashlib
import random
import string

size_of_rand_input = int(input("Size of each random string: "))

def id_generator(chars=string.ascii_letters + string.digits):
    return ''.join(random.choice(chars) for _ in range(size_of_rand_input))

def CheckSpeed(number_of_hashes):
    t1 = time.time()
    for x in range(number_of_hashes):
        hashed = hashlib.sha256(str(id_generator()).encode("utf-8"))
    t2 = time.time()
    time_allotted= t2-t1
    returned = (time_allotted, number_of_hashes)
    return returned;

hashes = int(input("How many hashes would you like to perform: "))

x = CheckSpeed(hashes)

print("It took {} seconds to perform {} hashes!\n".format(x[0], x[1]))


texts: How are transactions from incoming blocks verified?

texts:
Since only  the  hash of public keys are stored on the chain (as address), which could be validated only by miner who have access to signed transactions (which includes public key), how do other miners validate new incoming block, when they have no access to raw transactions (with public keys) ?

Thank you!


texts: Why does script need to be purged from transactions for mimblewimble to work?

texts:
What is the compatibility problem between script and mimblewimble usage on the main chain?

Is there a way that Bitcoin can adapt to allow both mimblewimble and features like multi sig, atomic swaps and time-lock transactions?


texts:
The probability of orphaned blocks should also take into consideration the proportion of the total mining hash power that the miner has.
If M_i and M_j are 2 miners with p_i= 2* p_j (proportion of their relative mining hash power) then in that case what is the ratio of the probability of orphaned blocks o_i and o_j

Under the assumption that mining delays exist and all miners are honest.


texts:
I want to know how I can express a phenomenon found in Merkle Trees mathematically. If I want to figure out which leaf node in a Merkle Tree has changed I can look at the authentication path to figure it out. Let's say there is one leaf node and one root node. If the root node changes you don't have to look at any other nodes (0) to determine which leaf node must have changed. In Figure 2 there is a 0 across from 1. If there are 2 leaf nodes and the Merkle  Root changes you only have to look at 1 node to determine which leaf node must have changed. As we increase the number of leaf nodes there is a relationship that exists with the total number of nodes you need to look at. I was wondering if there was a way I could express this mathematically in a clean way. Thanks!

Figure 1.

2*0 = 0  (1 zero)

2^0 = 1  (1 one)

2^1 = 2  (2 twos)

2^2 = 4  (4 threes)

2^3 = 8  (8 fours)

2^4 = 16 (16 fives)

2^5 = 32 (32 sixes)

2^6 = 64 (64 sevens)

Figure 2.

Leaf (Left Column)   &   Total Nodes (Right Column)
1         0

2         1

3         2

4         2

5         3

6         3

7         3

8         3

9         4

10        4

11        4

12        4

13        4

14        4

15        4

16        4

17        5

18        5

19        5

20        5

21        5

22        5

23        5

24        5

25        5

26        5

27        5

28        5

29        5

30        5

31        5

32        5

33        6

34        6

35        6

36        6

37        6

38        6

39        6

40        6

41        6

42        6

43        6

44        6

45        6

46        6

47        6

48        6

49        6

50        6

51        6

52        6

53        6

54        6

55        6

56        6

57        6

58        6

59        6

60        6

61        6

62        6

63        6

64        6

65        7

66        7

67        7

68        7

69        7

70        7

71        7

72        7

73        7

74        7

75        7

76        7

77        7

78        7

79        7

80        7

81        7

82        7

83        7

84        7

85        7

86        7

87        7

88        7

89        7

90        7

91        7

92        7

93        7

94        7

95        7

96        7

97        7

98        7

99        7

100       7

101       7

102       7

103       7

104       7

105       7

106       7

107       7

108       7

109       7

110       7

111       7

112       7

113       7

114       7

115       7

116       7

117       7

118       7

119       7

120       7

121       7

122       7

123       7

124       7

125       7

126       7

127       7

128       7


texts: Is it feasible to prove the density of found hashes and could that be valuable?

texts:
Background
When a miner claims a certain hash power and timestamps a block they solved, they are making a claim that a certain amount of time has passed since they received the previous block.  Intentional shenanigans ("time-warp-attack") may exist when the miner's timestamp is very different from the actual time at which they solved a block.  I was just imagining a method of inhibiting such shenanigans by verifying the density of found hashes.  Here's how that could be done:
How to Measure Hash Density
The number of SHA256 hashes between 2^255 + 2^n and 2^255 - 2^n for any n will increase at a relatively steady rate proportional to the miner's hash rate.  Counting them provides a rough estimate of a miner's hash rate.  A suitable n would have to be chosen for various levels of hash power.
Limiting Data Transfer Requirements
For a miner to prove that they generated a certain number of hashes within a given time frame, they'd have to provide the entire block for each of the generated hashes.  However, only a bit more data than the entire first of those blocks is really needed because they could include the nonce and the transaction set delta between the previous block and the current one each time they found one.  This could verify that they actually generated at least as many hashes as their timestamp suggests, with an error margin of the time it took for them to get the previously solved block and the error on the previous block's timestamp.
Possible Benefits
This might be useful for limiting the shenanigans that messing with timestamps or misreporting hash rate allows.  If it can be tightened up enough, it might squeeze out a lot pf potential "time warp" type shenanigans.


texts: Relationship of Bitcoin address and Public Key

texts:
I am trying to understand relationship between your Public Key and bitcoin address. After reading few blogs my understanding was that after generating your Master Key pair, in HD wallet. One should not share any part of it (neither public nor private) but create child keys and use those child key pair to create address but later when reading on Atmoic Wallet came across following

Now confused: is it must to share Public Key. Isnt it privacy risk. I thought one will create unique addresses for each transaction and avoid any privacy leaks.

ps. noob in BlockChain and Bitcoin


texts: sending an order through BTC-e API incorrect field error

texts:
I get the following message when trying to send a buy/sell order through btc-e api using a variable:
"you incorrectly entered one of the fields".

This is the line of code I use for sending an order:

APIMain.Trade(BtcePair.BtcUsd, TradeType.Sell, Math.Round(myAskP, 4), Math.Round(myAskQ, 4));

Sending an order via api does work when I enter it like this:

APIMain.Trade(BtcePair.BtcUsd, TradeType.Sell, 800m, 0.5m);

How do I force a decimal variable to be formatted like the line above?
Anybody experienced similar problems?


texts: Has a consensus algorithm where temporary authorities are fairly “elected” via PoW been discussed?

texts:
In the usual proof-of-work consensus system, miners constantly compute hashes (“wasting” resources). What if hashing were restricted to a certain time window, e.g., 1 hour per day?

This could act as a leader election for the remainder of the day. These leaders are “representative” of the entire network since they’re sampled using PoW.

The leaders could then use some Byzantine fault tolerant consensus algorithm to decide what blocks to append — without mining — until their “term” is up.

Has such a system — or something (even vaguely) similar — already been discussed?

The obvious question is how vulnerable this system is to colluding attackers. (Clearly it is weaker than the usual “51%” majority rule, but exactly how bad is it?)

If we assume that the BFT consensus algorithm can tolerate a fraction of 1/3 bad leaders, we can calculate the probability of a successful attack as a function of the bad PoW capacity share using some binomial distribution maths. Some back-of-the-envelope Python calculations suggest that perhaps 20% bad PoW share is tolerable, which isn’t absolutely terrible.
Maybe there is no known BFT consensus algorithm that would scale to anything close to the Bitcoin network (e.g., in PBFT the number of “replicas”, i.e., leaders, is << 100).

I’m sure there are plenty of other potential problems, I’m just wondering if it is feasible at all. Perhaps it has been discussed in some other context.


texts:
I'm a merchant that is currently developing program that I will use for receiving transactions for my business.

I would like my program to be able to check how much Bitcoin the address sending to me has. I have the entire blockchain downloaded to the computer.

Ideally I'd like something that works like this:

String address = "1PSxTeWTVgomscit2BoViZYKSc4QoyrmAk";
Double balance = blockChain.getBalance(address);

Is this possible? I am having a difficult time finding a way to do this using the blockchain stored on my computer. It seems like it would be fairly easy to do this just using blockchain.info's API, but I would like to keep the process contained on my computer.

Thanks in advance.


texts: How to get Bitcoins without having a bank account?

texts:
I'm an 18-year-old guy who wants to get some bitcoins but I don't have a Bank account yet.

I've been looking at some websites, such as bitstamp.net or blockchain.info but they seem like they are having problems (each one with its own problems).

What would be a fast way of converting cash into Bitcoins or cash into PayPal into bitcoins? (I don't know wich method can be used to get bitcoins, I'm really new to this.)


texts: Bitcoin daemon says directory doesn't exist even though it does

texts:
My bitcoin.conf file contains the following config:
datadir=/unbackuped/btcBlockchain
And I run bitcoin-core.daemon with this config file as an argument, but it tells me:
Error: Specified data directory "/unbackuped/btcBlockchain" does not exist.
Even though it does exist, it has permissions to be read by everyone, and is owned by the user which is running bitcoin-core.daemon.
I have no idea what could be happening, I checked the spelling thousands of times, I checked all the permissions and everything. The file specified is on a mounted drive, but it worked without issue when the drive was mounted under /home/user, and I have no idea why it won't work now.
What could be causing this?


texts:
This post asks the same question: What is an "unspent output"? but the answers for me are completely incomprehensible, probably because I lack a key piece of knowledge.

I have read every article I can find on "unspent outputs" and with each I get more confused.  e.g. these:

https://www.r3.com/blog/2017/07/18/what-is-a-utxo/

https://bitcointalk.org/index.php?topic=2011399.0

Lets say I have 1 BTC in a coinbase wallet or similar.

Do I have any unspent outputs yet?

If yes, who created it?

If no, how does one create an unspent output (or in what circumstance/use case are they created?

Can a single address have more than one unspent output?  If so in which circumstance?

Is there some article which explains these fundamentals in layman terms?

This one is on the general subject but doesnt mention unclaimed outputs:

https://en.bitcoin.it/wiki/Transaction

It says this:

  An output contains instructions for sending bitcoins. Value is the
  number of Satoshi (1 BTC = 100,000,000 Satoshi) that this output will
  be worth when claimed.

What is the relationship between claimed and unspent?

Is unspent unclaimed?

How does one claim unclaimed outputs, and in what circumstance would they end up unclaimed?


texts: What does the RPC call "getmemoryinfo" show?

texts:
What does the output of the RPC call getmemoryinfo actually mean? For example, this is from my node running in Docker. Does that mean the bitcoind process inside the container is only using 64272 bytes of memory? That's only 64k, that can't be correct, right?
{
  "result": {
    "locked": {
      "used": 64272,
      "free": 1264,
      "total": 65536,
      "locked": 65536,
      "chunks_used": 2002,
      "chunks_free": 2
    }
  },
  "error": null,
  "id": "curltest"
}

These are the processes inside the container.
/ $ ps -a
PID   USER     TIME  COMMAND
    1 bitcoind 12:52 bitcoind -zmqpubrawblock=tcp://0.0.0.0:28332 -zmqpubrawtx=tcp://0.0.0.0:28333
   43 bitcoind  0:00 /bin/sh
   51 bitcoind  0:00 ps -a


texts: why ripple currency exchange trading is slow sometimes?

texts:
Bids Sum BTC Size BTC Bid Price XRP
  30.58995660   30.58995660 6,000.00000000

  Asks Ask Price XRP    Size BTC Bid Price XRP
  6,000.00  29.07743420 29.07743420

while bids and asks match above, why the orders not getting filled? The above are top entries on each side of order book for btc/xrp since last 10 minutes in the ripple client.


texts: Bitcoin was sent out and still hasn't been received

texts: I sent bitcoin out to a segwit address (P2SH) and it split the transactions in 2 but I still haven't seen them delivered in into the wallet


texts: The complement of s (when s < curve order / 2)

texts:
Bitcoinlib refers to the requirement that if s > ORDER / 2, then the complement of s should be used instead since it's one byte shorter

This sounds like it's referring to the inverse or negative s value, but I also know complement can be a computer science term.

The relevant code can be found here (perhaps someone adept with the Bitcoin Core code can chime in on what the code is doing), so, what is the complement of s referring to?


texts: What future can bitcoin have if more and more countries will ban it?

texts:
As of today, Russia added itself to a list of countries that ban bitcoin operations.

So is there a future for bitcoin (and other cryptos) if more countries are going to ban them?


texts:
I'm attempting to understand the workflow of sending bitcoin to a paper wallet and retrieving it. I'm using small amounts until I get the hang of things.

I've created and sent bitcoin successfully to my paper wallet. Here is my paper wallet public key:

https://blockchain.info/address/1581DNnh8tmHFd2YS7kAorppibGMehScnv

With two transactions having gone through, and a balance of 0.0004 BTC.

I'm now trying to import the private key into Electrum (version 2.9.0).

I've taken the wallet private key and decrypted it using bitaddress.org (I used a BIP38 passphrase) and got the Private Key WIF (the 51 character one that begins with 5). I then go to my primary wallet in Electrum and go to Wallet > Private Keys > Sweep as there's no option for import (it looks like as of v2 Electrum no longer supports importing private keys).

I enter my Private Key WIF and I get the following message:

"No inputs found. (Note that inputs need to be confirmed)"

My first question is, what does this mean? My assumption is that this means that there is no bitcoin associated with this address. I thought this could be because the wallet didn't have enough bitcoin attached to it - that somehow there wasn't enough to pay the mining fee. (Thus the two transactions).

My second attempt was to create a Standard wallet from scratch, using the private key. I did this and the imported public address matches the one displayed on bitaddress.org post-decryption. However, the balance in this address reads 0.

I really want to make sure I understand how this process works from start to finish. To summarize my questions:

What does "No inputs found. (Note that inputs need to be confirmed)" mean?
What is the recommended procedure for retrieving coins from paper wallets?
Should you sweep them into an existing wallet, or create a wallet from scratch and then send them to a different wallet immediately?
Given that the wallet here has transactions associated with it, why would my imported wallet - whose address matches this (although the address in Electrum is the decrypted address, and the one on blockchain is the encrypted address) - show zero bitcoin associated with it?

Thanks for helping this bitcoin noob!


texts:
I have used Bitcoin previously via Windows GUI miners, but never faced an issue like this before. I am now running Ubuntu 12.04 amd64 and using an updated 0.7.1 Satoshi client.

The sync looks like it is working, but the first block never loads. I have had the wallet synchronizing, but it is forever stuck at zero. My Internet connection is fine and have cleared the bitcoin directory and rebooted with no change.

While I am writing this I am watching my other rig drop blocks fine and its running Mint 13 with about a third of the resources I have on the computer giving the issues.

Any help will be greatly appreciated. Thanks.

Specs:

UBUNTU 12.04 updated
AMD Phenom IIx4
4 GB ddr3
Nvidia EVGA 9800GTX


texts: How to trigger port for Bitcoin client (e.g. 8333)

texts:
According to this it's possible to have incoming connections to Bitcoin client by forwarding port 8333 on the router. I was wondering if there is some specific port range Bitcoin Core uses for making outgoing connections which could be used as a triggering rule? This way when the client is not running, port would be closed, plus it could be used by different machines behind the router without configuration changes (I know I could forward different ports to different machines and then change the incoming port in client configs)

EDIT:

@NateEldredge is right.

My current setup is as follow:

Rule name: Bitcoin
Triggered range: 8333-8333
Forwarded range: 8333-8333

If Bitcoin Core is running the port is open (according to http://www.canyouseeme.org/). If it's closed the port is closed too.

The only catch is it won't work if all 8 outgoing connections will use non default port but it shouldn't happen too often if ever.


texts:
There seems to be a lots of variations in confirmation time.

https://blockchain.info/charts/avg-confirmation-time

I would like to understand factors that affects the confirmation time.


texts: How do cloud hashing companies profit? (leasing hashing power)

texts: I think I'm missing something. There are a bunch of cloud hashing companies that lease hashing power. Let's take cointellect for example. They have contracts from 10 days to 24 months. If I buy a 10 mH/s of hashing power from this company for 99 euros, they guarantee a minimum of 2.2 euro daily return which makes 180 euros in return for my initial investment of 99 euros in the 3 month contract. How is this profitable for both me and the company? What's the math behind this?


texts: Transferring Bitcoins from Wallet to Wallet

texts:
Say I buy a Bitcoin from a specific market, like BTC-e, and it goes into my wallet. Is it possible for me to transfer that Bitcoin from its current wallet (BTC-e) into a wallet that I have on another market, like LocalBitcoins? If so, how can I do that and is there a fee?

Also, do all markets (BTC-e, LocalBitcoins, etc.) allow you to withdraw a Bitcoin from your wallet and exchange it for cash?


texts: Python: Why the addresses and keys generated by pywallet and bip32utils using the same 12 mnemonic words don't match?

texts:
I tried to generate wallets by using pywallet and bip32utils (Python). But I noted that the addresses/keys of the 2 wallets, namely wallet_pywallet and wallet_bip39 don't match with each other.
I noted that the addresses/keys of wallet_bip39 match with Exodus, but wallet_pywallet doesn't. We have been using pywallet for such a long time so I believe wallet_pywallet should be correct as well. Why is there such a discrepancy?
Below is the code, while the code for wallet_bip39 is obtained from this post.
from pywallet import wallet
import binascii
import mnemonic
import bip32utils

def bip39(mnemonic_words):
    mobj = mnemonic.Mnemonic("english")
    seed = mobj.to_seed(mnemonic_words)

    bip32_root_key_obj = bip32utils.BIP32Key.fromEntropy(seed)
    bip32_child_key_obj = bip32_root_key_obj.ChildKey(
        44 + bip32utils.BIP32_HARDEN
    ).ChildKey(
        0 + bip32utils.BIP32_HARDEN
    ).ChildKey(
        0 + bip32utils.BIP32_HARDEN
    ).ChildKey(0).ChildKey(0)

    return {
        'mnemonic_words': mnemonic_words,
        'addr': bip32_child_key_obj.Address(),
        'publickey': binascii.hexlify(bip32_child_key_obj.PublicKey()).decode(),
        'privatekey': bip32_child_key_obj.WalletImportFormat(),
        'coin': 'BTC'
    }

mnemonic_words = wallet.generate_mnemonic()

wallet_pywallet = wallet.create_wallet(network="BTC", seed=mnemonic_words, children=0)
wallet_bip39 = bip39(mnemonic_words)

print(wallet_pywallet)
print()
print(wallet_bip39)


texts: Where is a comprehensive list of websites for getting free bitcoins?

texts:
Up till now I know two websites where one can get free bitcoins:

http://www.bitvisitor.com/
https://freebitcoins.appspot.com
http://freebitco.in
http://takefreebitcoin.com/

Is there a comprehensive list of all such websites available somewhere?


texts:
I understand the current BTC "reward" for mining is 12.5 BTC.

I found these two blocks (one , two) where the newly generated coins seems to be 13.5 and 14.5.

I don't see a 12.5 BTC reward, and these transactions look like rewards, but have the wrong amount.

What am I mis-understanding?


texts: What is the utility in the cgminer statistics

texts:
While digging through the API of the cgminer I noticed that there is a value which I could not figure out what it means: the utility.

What does it stand for, what are common values and how is it calculated?


texts:
2 Questions:

Why is Musig signing always interactive?
Let's say I have a Musig wallet where keys are stored in secure locations with no internet access. What are some methods to sign from these secure, offline locations given Musig interactivity constraints?


texts:
I understand that in selfish mining a malicious node can "send its entire hidden chain". Exactly how is this done? I know that usually a single block is broadcast-ed right after it is mined, but how does it relay an entire chain?
I am looking at the original bitcoin protocol https://en.bitcoin.it/wiki/Protocol_documentation#inv
It seems that inv can broadcast many objects. So would a malicious node send an entire chain via one call to inv or many?


texts: Unconfirmed transaction, fees paid, seem to be two payments

texts:
Transaction id: 601536cadb0055cee97b4ff7969c707bea18745168fe6fedae95f854b2168b11

I made this transaction several hours ago. It seems like it is stuck at being unconfirmed even though I paid a transaction fee of 0.000129 BTC.

I can see the transaction details at: https://blockchain.info/tx/601536cadb0055cee97b4ff7969c707bea18745168fe6fedae95f854b2168b11

I don't understand why there are two payments. Really confused as to what is going on and what the outcome will be. Will this transaction ever get confirmed? Will it eventually time out if it doesn't enter the blockchain and the BTC transfer back to the originating wallet?

Really appreciate any help here. Thank you.


texts: Transaction flagged as having a non-standard input

texts:
A few hours ago I've sent a transaction which is not being added to a block, and on blockchain.info it flagged as "non-standard input".

I've used pybitcointools to create the TX.

What is wrong with the TX?


texts: What is 'spendability of coinbase transaction after 100 blocks' in Mastering Bitcoin referring to?

texts:
Ch7 of the book writes at the end of the Introduction section:

  "After 100 blocks back there is so much stability that the coinbase transaction—the transaction containing newly mined bitcoins—can be spent"

Can someone explain what is the author trying to convey with an example?


texts: Someone bought bitcoins via hacking my PayPal account, how can I retrieve the bitcoins?

texts:
Someone has been purchasing Bitcoins using my PayPal account - which was obviously hacked.  PayPal won't let me close the account yet.  I'm going to be charged NSF fees by my bank - I have the Bitcoin wallet address that the sale was made to: -

  Please confirm you want the Bitcoin deposited into Wallet: 1Jvgp9Qcr5D3K37gcfjsp4L5Csg8wwReye

I need to cancel that account, whoever it belongs to.


texts:
From what I know, the only advantage of an SPV node compared to a API Node, is the increase in privacy.

SPV nodes take up more bandwidth, in order to stay synced with the current chain and in some cases, store a lot of data.

With an API wallet, one could connect to multiple endpoints to see if any one is lying. There is also less data and less bandwidth.

Do most people care if their wallets are SPV?
Are there any other advantages of SPV that I have missed?


texts: How can a light client be certain he got all relevant transactions?

texts: With merkle trees, a light client can be sure some transactions he receives are correct with a minimal amount of the blockchain data. How can such a client, though, be sure he received all the relevant transactions from/to his address, in order to know his full balance? What if his peer censured some transactions for some reason?


texts: In Lightning commitment transactions, what do the upper 8 bits of sequence and locktime represent?

texts:
In Bolt 3 of the Lightning Network specs, for commitment transactions it states:

locktime: upper 8 bits are 0x20, lower 24 bits are the lower 24 bits of the obscured commitment number.
sequence: upper 8 bits are 0x80, lower 24 bits are upper 24 bits of the obscured commitment number

What is the reason for those specific upper 8 bits? I understand that the lower 24 bits are effectively arbitrary data used for storing the obscured commitment, but then why not use all 32 bits for both?


texts: After Segwit Activation, what is the largest block size possible?

texts:
The code says MAX_BLOCK_SERIALIZED_SIZE = 4000000, but that is actually not a actually consensus rule as stated here:

https://github.com/bitcoin/bitcoin/issues/10289

The actual consensus rule is based on MAX_BLOCK_WEIGHT, which is also 4000000. It's unclear to me what the minimum weight a p2wpk or p2wsh transaction can have. Specifically, what's the best witness-serialized size/weight ratio that a transaction can have post-segwit activation?

That should answer the question of what is the largest block size possible post-segwit activation.


texts: Are there any blockchain parsers which calculate virtual sizes of transactions?

texts:
"The getrawtransaction RPC gets a hex-encoded serialized transaction or a JSON object describing the transaction."

https://chainquery.com/bitcoin-api/getrawtransaction

The output includes the vsize (virtual size) of the transaction. Are there any blockchain parsers show the vsize?


texts: Signing transactions can not find private key

texts: Please I need help. I have made an transaction online using bitcoin, but the order cancelled and now my bitcoins are stuck. I've been using coinb.in the first time a while ago and was able to do it successfully. Now the private key is not letting me pass the same one I used last time. What can I do to get back my bitcoins?


texts: Quantifying the long term costs associated with self hosting the Bitcoin node?

texts:
In this question I discussed the option of self hosting the Bitcoin node vs. using 3rd party services with API access. I quoted a colleague who said that "for every coin we wish to support, we will be required to hire a dedicated expert developer to maintain each node at a cost of $40,000 per year per node".
Although this was not the main point of my other question, I received a polarizing response to this quote.
For example, the user @Anonymous commented:

Where could they have possibly got the idea that maintaining a bitcoin
node costs $40,000 a year?

In response, the user @chytrik wrote:

Perhaps not for bitcoin, but for some poorly developed altcoins that
number is maybe too low – chytrik

A similar sentiment to @chytrik has been echoed by @Murch♦:

I agree, developers with a cryptocurrency background is not neither
cheap nor abundant. Obviously, it depends on your location, but I
suspect that you may find that $40,000 p.a. to be actually highly
optimistic. In the US, you'd probably be looking at $150k+ per
position (salary+rest).

Since this site is for Bitcoin, the focus of my question will be exclusively on Bitcoin.
Is there a practical way of quantifying the cost associated with self hosting the Bitcoin node? This includes the cost of hosting, scaling and hiring a competent developer to setup and debug the node. Obviously, a big part of the evaluation is likely to depend on the number of expected transaction so let's assume for this example we are dealing with an app that will scale from 5,000 to 500,000 customers at some point or from 500 to 50,000 requests per day.
What is a practical way of quantifying the long term costs involved and what type of maintenance/upgrades would a developer be required to do in the long term?


texts: What happens when a miner does not claim all fees/generated coins?

texts:
Suppose that a miner for some reason has the generation transaction of their blocks not take all the possible coins. This can happen for a variety of reasons, almost all of which are bugs:

An off-by-one error makes them think that their block should generate only 25 BTC when we're still at 50 BTC per block
Some bug prevents them from noticing a transaction fee; perhaps they were mining and updating the block in parallel using non-thread-safe code.
Depending on the answer to this question, they may actually decide to do this on purpose (though I can't think of an answer that would cause this in the vast majority of cases)

I can think of a few possible ways the network would respond, and none really seem ideal.

The block could be rejected, just as it would be if it had too much generated.
The block could be accepted and the extra coins available for whoever mines the next block (in which case, somebody may do this on purpose to encourage others to mine).
The block could be accepted and the extra coins lost.

What actually happens?


texts: Is there any tool to check sum of all BTC based on transactions? We can easily get this amonut by sum up mining rewards, but what about sum up all non zero wallet balances?


texts: What happens if the blocksize stays at 1MB?

texts:
With the current impasse that Bitcoin finds itself in, what are the theoretical and pragmatic implications of the blockchain staying at 1MB for the long term future?

Will this simply mean that transactions will take increasingly longer confirmation times? Or will there be a point where the network will simply not be able to cope with the number of transactions (if the transaction rate continues to increase). I have looked online but haven't been able to find any answers for the blockchain illiterate that explain this.


texts: What would be the easiest way to test the submitblock method?

texts:
I'm constructing a customized miner, and I'd like to check if the submitblock method would work properly when connected to mainnet. What would be the easiest way of doing that using RPC calls and bitcoind?
Which alternate network (testnet, regtest, signet) would suit better for this kind of test? (I'd like to use something with a very low difficulty)
Should I try to remine the genesis block, or should I try to create my own blocktemplate to be mined? And how could I do this?


texts: Can an account define conditional tags to blockchain

texts:
Let me try to specify my question with an example:

Consider that there are 4 accounts ( AccountA and AccountB and AccountC (Taged as Store) and and AccountD (Taged as Night Club)), and AccountA wants to send let's say $100 to AccountB with a specified condition (i.e. $100 can be spent only at Accounts taged as Store ).

Can i implement above case?

If i can, how?


texts: running bitcoin-cli -testnet getblockchaininfo

texts:
Hello when I run this command (bitcoin-cli -testnet getblockchaininfo) I get this:

{
  "chain": "test",
  "blocks": 0,
  "headers": 0,
  "bestblockhash": "000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943",
  "difficulty": 1,
  "mediantime": 1296688602,
  "verificationprogress": 4.453828060385498e-08,
  "initialblockdownload": true,
  "chainwork": "0000000000000000000000000000000000000000000000000000000100010001",
  "size_on_disk": 293,
  "pruned": false,
  "softforks": [
    {
      "id": "bip34",
      "version": 2,
      "reject": {
        "status": false
      }
    },
    {
      "id": "bip66",
      "version": 3,
      "reject": {
        "status": false
      }
    },
    {
      "id": "bip65",
      "version": 4,
      "reject": {
        "status": false
      }
    }
  ],
  "bip9_softforks": {
    "csv": {
      "status": "defined",
      "startTime": 1456790400,
      "timeout": 1493596800,
      "since": 0
    },
    "segwit": {
      "status": "defined",
      "startTime": 1462060800,
      "timeout": 1493596800,
      "since": 0
    }
  },
  "warnings": ""
}

can you explain what does each line mean and why headers :0 ?

Thank you


texts: Applying blockchain in telemedicine app involving 'video sessions with doctors' for more transparency

texts:
PS: there was no 'Blockchain' community so I'm posting the question here.

Hi,

I am very new to blockchain but understand the basic underlying concept of blockchain. I can understand application of blockchain for supply-chain in ensuring transparency and maintaining quality of the product from manufacturing till customer acquisition.

Now consider an app, can be web app or mobile app, that screens the doctors to get them on the app, then customers can choose the doctors according to the illness they are facing and audio/video call to them to diagnose and write prescriptions.

My question is, do you think there is a considerable need for blockchain to enhance transparency- means a doctor who was screened at beginning is the same doctor treating you and that the medicine that was prescribed is the same medicine that patients gets ? So every event is recorded in a distributed database which is decentralized and that makes it much harder to introduce fraud into the system.

Or there is simply no need of it because its already digitized to an extent that we can ensure these basic points above without the use of preserving tokens at every step.

Let me know if anyone needs more info on this.

Eagerly waiting for a response !

Thanks


texts: Upgrading Multibit (without losing wallet)

texts: I am using Multibit 0.4.23 but would like to install Multibit 0.5.9.  How would I move my coins from my current wallet? Is this done automatically?


texts: Why was block # 289791 empty of any transactions?

texts: I just came across something strange, block no 289791 which was mined on Mar 10, 2014 is empty of any transactions. Is it because the miner refused to accept any? Or something else?


texts: I have unspent bitcoin in the blockchain

texts:
I made a transaction from a multibit wallet. It arrived in the blockchain and was confirmed thousands of times. However, the transaction is set to 'unspent'.

Can I retreive this from the blockchain when I have the private key of multibit, or is it lost?

This is the transaction:
https://blockchain.info/tx-index/b2a861b053125b5be9e7ba1b88e655b0e1184973038e3a528b8deb446336ec24

Can anyone help with this?


texts: How were miners supposed to signal support for BIP148?

texts:
Under BIP141 (SegWit), you could signal support by setting nVersion bit 1 equal to 1. BIP9 counted:

20000002 100000000000000000000000000010
20000012 100000000000000000000000010010
30000007 110000000000000000000000000111

Under BIP148 (Mandatory SegWit), it says "all blocks must set the nVersion header top 3 bits to 001 together with bit field (1<<1) (according to the existing segwit deployment."

What exactly should the nVersion have looked like? Which of these would be counted towards BIP148?

001000000000000000000000000010 ?
100000000000000000000000000010 ?


texts: Import watch-only address to 0.18 core wallet, addresses missing

texts:
I am running new bitcond server

$bitcoin-cli importaddress '32om7Xx7GnwxkiAQjpp3hhayDX4mSNLmR1' 'label' false
$

it seems added.

Then I try to list all addresses in wallet it return empty list.

$bitcoin-cli listaddressgroupings
[
]

here my bitcoind.conf

server=1
rpcuser=uname
rpcpassword=pass
rpcallowip=127.0.0.1
rpcbind=127.0.0.1
rpcport=18332
daemon=1
addresstype=p2sh-segwit

$ bitcoin-cli listwallets
[
  ""
]


texts: Can someone recognize any two addresses (generated by hardware wallet) come from the same hardware wallet/mnemonic seed?If I generate multiple cryptocurrency accounts/addresses in ledger live,is it possible for someone to recognize it comes from the same hardware wallet/seed? I would also want to ask the same question for software wallet. Thanks.


texts:
lnd has been installed on my digital ocean droplet, but now I need to uninstall it as attempting to update it has corrupted the exec.

How can I uninstall lnd on ubuntu?


texts: Lightning Route Discovery - How to know capacity in each direction?

texts:
So i have a question how routing works in the LN. I read partly through the RFC described in https://github.com/lightningnetwork/lightning-rfc but I have still this open question.

I know every node in LN has the whole network topology information, so it knows each node and each channel and with that also the capacity of a channel. But the capacity of a channel doesn't say which side is owning how much. How can we find now a valid route and be sure that there is enough capacity in each channel for the direction which is part of our route?

So for an example lets say I am node A und have a channel to node B and this one has a channel to node C. Lets say each channel has a capacity of 1 BTC, I want to send now 0.4 BTC from A to C and chose the route A -> B -> C. But now it may be that in the channel B - C the node B only owns 0.3 BTC at the moment and node C owns 0.7 BTC. That would mean that B can't send 0.4 to node C. So if I send now this transaction B would return with an error.

If I have now a longer route the possibility of such an event increases exponentially. So at the end it is very unlikely that my chosen route is valid. How does the protocol prevent a lot of tries until one finds a really valid route?


texts: SHA256 speedup possible if executed on GPU

texts:
Is it possible to speed up hashing if hashing is done on a GPU? Does that even make sense or are the CPU instructions faster because for normal signature verification you don't gain by parallelizing the execution? What about latency between GPU and CPU?
Clarification: I am not talking about mining. I only want to know if the node would be faster (for example during IBD) if hashing was done on the GPU.


texts: What's the difference between an ASIC and an FPGA? Which is better for mining?

texts: I'm a software guy with only the most basic of hardware training/knowledge so while I understand the basic concepts of ASICs and FPGAs the details are beyond me. What are the primary differences and, more importantly to my purposes, how do those differences play out for bitcoin mining purposes?


texts: Can you generate a url from a payment request?

texts:
I am writing a java webserver that can use bitcoin as a payment method. Thanks to the helpful advice in this question, I am able to generate payment addresses for various signed up vendors. I am now taking that address and creating a Payment Request using the bitcoinJ library. I would like, however, to have this request as a meaningful URL still, so the web browser or client making the payment can do something with it. That is to say, I create the payment request on the server and return it to the client. The client can then put that request in their wallet of choice and make a payment.

Is the payment request able to work that way? I saw this post on stackoverflow that indicates that it can, however I haven't been able to see anything within the API I am using that can do that. Is that a limitation of the specification, the library I'm using, or is it possible to do?


texts: Do any ETFs purchase Bitcoins? Is that scenario possible?

texts:
Is there any ETF that allows for the purchase of Bitcoins?

Is this possible?

More info...

An ETF is like a stock that is publicly traded on the stock market, and it can represent:

A collection of stocks
An asset, like gold or silver
A position, such as a derivative on an index like SPX$


texts:
I got 2 U3 running on Linux Ubuntu cgminer 4.9.0.

Dedicated Power Supply
New short USB cables
Cold room ambient 5 degrees celcius (heat sinks don't go over 40 degrees)

Not once have I managed to run them longer than 24 hours. Does anybody know why they keep going ZOMBIE?

Once they go ZOMBIE like this they are not detected by cgminer and sometimes show in lsusb but not always. The only way to fix this is to remove USB cable and Power, restart cgminer, then plug power back in and USB.


texts: bech32 addresses for segwit support in mycellium and coinomi?

texts: Does mycellium and coinomi for android support bech32 addresses for segwit? If they don't would it throw an error if you tried to send it there?


texts: Will all crypto-currencies exist on the same lightning network?

texts: In the basic form, lightning-network is a chain of iou:s in one currency. But as far as I have understood, the plan is to put atomic swaps on lightning network. Will this mean that all currencies exist in the same lightning network? Does LN care and know about the curreny that is exchanged? Will it also work out the routing? What about exchange rates?


texts: What software should I use to mine bitcoins?

texts:
I'm really interested in bitcoins but I don't really trust any exchanges to keep my ID safe. I thought it would be a good idea to mine bitcoins for a day or two to get a couple of cents to send around to different address and see how it works!

Is this a good plan? Is there a better way? Also what software should I use? I did a little research and thought this looked good! https://github.com/luke-jr/bfgminer


texts: How many addresses does my wallet.dat contain? Do I need to make a new backup every time I make a transaction?

texts:
I'm having little problem here, trying to figure out the safest way to backup my wallet.dat to make sure that no BTC may be lost in case of recovery.

I'm not sure how the process of adding new addresses may affect a, say, a recently created backup.

So, basically, do I need to backup continuously to make sure that no BTC are lost? do I need to backup after each new address is created?

Can you provide me with some general golden rules when backing up wallet.dat?