(How) can I run standard clients on a "toy" block chain? Say I build some software around the Bitcoin system and I would like to try stuff without having to earn real BTC first, and without having to employ a lot of hashing power to grow the block chain.

As I understand it, the bitcoin clients connect to the network to get the authoritative block chain, so it seems I can't set up a toy network easily. Or can I? I would assume developers of the clients would need some way of testing their software.

While I am a software developer, and familiar with stuff like modifying source and rebuilding the client, the point of this exercise would be to run unaltered clients in a dummy environment.

This seemed to be a newbie question. There is what is called a "testnet", and there is more info on the Wiki at: https://en.bitcoin.it/wiki/Testnet

This site has a specific tag for it, as well: https://bitcoin.stackexchange.com/questions/tagged/testnet


Can I use any "wallet" to store Litecoins? I have a doge wallet, can I use it to collect litecoins? Or do I need to specifically get a litecoin wallet to receive payments for hashing? Thank you.

Any wallet is based on the particular set of cryptographic functions used for a single cryptocurrency. If you tried to send dogecoins to a litecoin wallet address, the transaction would not be valid because the dogecoin blockchain is only a record of dogecoin transactions and the litecoin blockchain is only a record of litecoin transactions.


what are my tax implications for cryptocurrency? Do I pay any taxes to purchase or sell bitcoin? If I use a Bitcoin debit card and withdraw USD from an ATM, is it a taxable event?

In the United States, Bitcoins are treated like a commodity asset, not like cash. So when you buy something with Bitcoins or exchange Bitcoins for dollars, you have a taxable capital gain on the difference between your basis in the Bitcoins and the value you got for the Bitcoins.


Does Bitcoin-Qt require that I create a bitcoin.conf file in order to solo mine on my Mac? Does Bitcoin-Qt require that I create a bitcoin.conf file in order to solo mine on my Mac?  I created one after reading the wiki and placed it in Lib/AppSupp/Bitcoin but I am not sure I needed to.  Was I correct in creating this file?  If not, what application besides Bitcoin-Qt is it used for?

As the name suggests, bitcoin.conf is a configuration file to set various options of the bitcoin client.  Details of the file and available options can be found here.

The most commonly used option is to set the RPC username and password (see your other question).  If you only want to solo mine using setgenerate true (which, as I mentioned in my other answer is not recommended), the defaults should be fine and you don't need to put anything in bitcoin.conf.


What is the longest time a transaction has been in limbo for? What is the longest time a transaction has been in limbo for in Bitcoin?

This question cannot be answered reliably.

The only part of Bitcoin that is publicly known is the blockchain. The transactions that are confirmed are on the blockchain, that is shared online.

The transaction is "stuck in limbo" - unconfirmed - from the moment it is created to the moment it is in blockchain. However, you cannot tell reliably when it was created.

Each node tracks unconfirmed transactions, and it can track where it saw the transaction first, but it doesn't really mean when it was created.

Blockchain.info shows this as "Received time". You could probably count answer to your question from that, but it wouldn't be reliable.

I can add a personal answer: I run my own node and sometimes look on mempool, what is the oldest transaction there; today, I saw 6 days old transactions in mempool. So, the longest will be surely more than 6 days. But that is just an incomplete, personal observation. :)


Does blockchain have any value if you trust all nodes? If we are designing a new project or application whatever it is, and you can trust all nodes, should we still consider blockchains in the architecture?

I saw this video of IBM and I was wondering why choosing blockchain as a solution

https://www.youtube.com/watch?v=tdhpYQCWnCw&lc=z23mitvo0ki5sgplm2hd0syvq1wb1yadphkj5vl0mj00u00c2.151904784581

Wouldn't regular database solve the problem either way?

Could somebody explain?

By design, a blockchain is inherently resistant to modification of the data, so if you own or trust the nodes and you can modify that data anytime, so blockchain is ineffective.

If you were trying to use the blockchain technology just for storing data and for the highest availability, A regular database with some extra connected nodes would do the job.


Error selling BTC on Ripple.com I have 2 BTC in my Bitstamp wallet.
I have over 10,000 XRP (no issue with reserve)

I have trusted Bitstamp up to $300 in my Ripple client.

I've tried to enter an order selling 1 BTC for 8400 XRP.

  Transaction failed!

  Error: Insufficient balance to fund created offer.

Is there a BTC wallet in my Ripple account where my BTC need to be?  Your help is appreciated.

I have 2 BTC in my Bitstamp wallet. I have over 10,000 XRP (no issue
  with reserve)

If this is in your Bitstamp account then you need to withdraw it to Ripple before you can use it on the Ripple platform (e.g. just as BTC at MtGox can't be used on the BTCE exchange).

  I have trusted Bitstamp up to $300 in my Ripple client.

To get bitcoin from Bitstamp you'll need to trust Bitstamp for >= 2 BTC (if you fail to do this before attempting the Bitstamp withdrawal, Bitstamp will redirect you to the Ripple client page to extend the required trust). No trust is required for USD unless you'll also be dealing in USD with Bitstamp.

  I've tried to enter an order selling 1 BTC for 8400 XRP.

    Transaction failed!
    Error: Insufficient balance to fund created offer.

The balance referred to here is your BTC balance within Ripple, which from the sounds of it is zero.


What's happening in regtest mode? - Wireshark analysis Motivated to watch data exchange on Bitcoin Newtwork, especially on regtest, and with hints from David Harding I decided to analyse traffic on regtest with Wireshark.

I've installed and setup (I've got a list of interfaces) Wireshark and start capturing from all interfaces available and immediately run one regtest node with following connection specification:

...
Bound to [::]:11111
Bound to 0.0.0.0:11111
...

I put a tcp.port==18444 filter (in the style of this description) and apply.

Problem: There's no traffic shown!
Question: What am I doing wrong and what interface should I capture from?

The regtest mode is basically for running a node in a test network where all peers have to be added manually and it is extremely easy to solve blocks. As such, there won't be any network traffic unless you start multiple nodes and connect them using the addnode RPC command.

Alternatively, maybe you meant to run this in -testnet mode instead of -regtest mode?


bitcoin allowip not working My bitcoin.conf file has the following lines:

rpcallowip=127.0.0.1
rpcallowip=192.168.*.*

But I'm getting this error:

  Error: Invalid -rpcallowip subnet specification: 192.168.*. Valid are a single IP (e.g. 1.2.3.4), a network/netmask (e.g.
  1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24).

How do I allow an IP range as I did before?

That format has been removed.

Use

rpcallowip=192.168.0.0/16

instead.


Lightning Network's RSMC: what happens if there's no revocation transaction? From the Lightning Network's whitepaper, page 19:

  If they do not broadcast their most recent version, they will be
  penalized by taking all the funds in the channel and giving it to the
  counterparty.

  ...

  If they do broadcast their most recent Commitment Transaction, there
  should be no revocation transaction superseding the revocable
  transaction, so they will be able to receive their funds after some
  set amount of time (1000 confirmations).

By revocation transaction, I assume the author implies that one party can prove on the main chain that the Commitment Transaction broadcast by the counterparty was not the most recent one.

Given that's true, will the party receive all the funds in that channel? Conversely, what happens if the counterparty goes offline for a long time (more than 1,000 blocks as per the example in there) and there's no revocation transaction, despite the fact the broadcaster lied about the Commitment Transaction?

My assumption was wrong: in a RSMC (Relative Sequence Maturity Contract), a Revocable Transaction refers to the transaction whose output can be spent after a specific amount of time (eg: 1000 blocks) by the counterparty, not the original party.

The counterparty won’t get all the funds in that channel, but whatever was their balance before. After 1,000 blocks, if the original party doesn’t notice the malicious activity, the counterparty is able to spend (presumably) more than they should (as the counterparty published an old Commitment Transaction, it means that they try to reverse the payment for whatever service or product the parties).

This is the reason why users may want to monitor the blockchain for old Commitment Transactions, as a counterparty caught broadcasting an old one will lose all their money when a BRT (Breach Remedy Transaction) is broadcast. The BRT’s private key might be delegated to a third party “watch tower”, since they can't do any harm.


Minimum transaction fee to COMPLETE when mempool is +50 MB As of June 11, 2017:

Mempool History  - < Blockchain.info

the mempool is currently about 50 MB, and
a week ago, the mempool was about 100 MB.
The blocks mined per day are about 150, so at 1 MB / block = 150 MB / day of data is added.

This tells me that, if demand for transactions decreases as it has for the last week, from a mempool of ~100MB, it may reach a mempool of zero within a week from today's ~50 MB.
-- Note that the mempool hasn't approached zero since April 16 this year.

Once it reaches zero, I'm assuming that even if the fee is set to zero, transactions will get confirmed "soon", and definitely within a day.  Yes?
If I'm moving .001 (= $3 US) and specify 3 satoshi as a fee, at what point in time, and is is likely that it will be confirmed at all, when the mempool is at 50 MB?

I know that it increases probability as it ages.  However many miners won't touch transactions at all, unless there's a fee attached, OR all the fee-based transactions have been satisfied.  Correct?

So, what is PROBABLE TIME with the following mempool sizes would a $3 value / .001 transaction be confirmed with a 3 satoshi fee?

50 MB mempool -- =  how many days or hours?
25 MB   "
10 MB   "
5  MB   "

I know that it increases probability as it ages. However many miners won't touch transactions at all, unless there's a fee attached, OR all the fee-based transactions have been satisfied. Correct?

As far as I can tell the system of giving older coins priority is no longer in use.

If we assume that miners will always take the 1MB with the highest fee rate out of their mempool (which is likely true except for their own transactions and accelerator activity), the only interesting question is:

What fee do I need to add to a transaction in order for it to be among the top 1MB for any of the next X blocks when I want it to confirm within X/6 hours.

Notably, the number of transactions in the mempool is not predictive in regard to this question. Rather interesting are:

lowest "natural" fee-rate in the past blocks
fee rates in the top X MB of the mempool
expected influx of competing transactions

  So, what is PROBABLE TIME with the following mempool sizes would a $3 value / .001 transaction be confirmed with a 3 satoshi fee?

Since that is even below the minimum fee of 1,000 satoshi per kB, it will never confirm.

Update: I was wrong in the last sentence. This past weekend transactions with zero fee were confirmed. So, let me correct 'never' to 'once in a blue moon'.


What is "signature recovery"? Bolt #11 defines a "tagged field," n, which identifies the payee by a public key, but it isn't required.  It also requires a signature which can be verified only if the public key is known.  When tagged field n is not included, something called "signature recovery" is required.  How does that work?

I ask because I was thinking that if I get two invoices, I should be able to determine if they indicate the same payee.  I thought tagged field 'n' would be great for this, but it might not be supplied.  So how can I compare the two invoices to see if they came from the same node?  If signature recovery is built in, I guess that means I can get the public key even if tagged field 'n' is missing.  But how would I do that?

It is as you suspect: You can recover the public key knowing only the signature and the message. The recovery id byte in the signature is not strictly necessary as there's a brute force option, but it is included for efficiency.

There's an implementation of public key recovery in bitcoin core's secp256k1 library.


What is the best way to create a wallet with a blank keypool then add keys to it? The scenario is this:

User has a cold storage wallet and will import their cold storage xpub into Bitcoin Core using getdescriptorinfo and importmulti. User wants to only use the keys associated with the imported xpub as a watch-only wallet and wants to exclude all existing keys in the wallet so as to avoid getting an address not associated with their xpub when calling getnewaddress or getrawchangeaddress.

Would the best way to go about this be to create a blank wallet first with:

createwallet "Cold Storage", disable_private_keys: true, blank: true?

Or is there a simpler way to specify which addresses are generated when calling getnewaddress?

Yes, you will want to create a new wallet and specify true for disable_private_keys. It is not necessary to specify blank as disable_private_keys will already ensure that no private keys will be generated or imported and as such, the newly created wallet will be blank anyways.

You can then import xpubs, public keys, and addresses into Bitcoin Core using importmulti. By setting "keypool":true for every public key, the keys will be added to Bitcoin Core's keypool and allow you to use getnewaddress to get addresses. Additionally, for change keys, specifying "internal":true will mark change keys as change and allow you to use getrawchangeaddress, fundrawtransaction, and walletcreatefundedpsbt more easily.

However, be careful when importing an xpub that you use the correct derivation paths. If the child keys that you will eventually be using are derived using hardened derivation, you cannot import an xpub as hardened child keys can only be derived from the master private key. In that case, you will have to import each key by itself, which can also be done using importmulti.


Easy to Mine Cryptocurrency I'm new to this field.It seems that mining Bitcoins using a normal computer has become tough.I have got a normal laptop with Intel i5 processor and GeForce 930MX graphics card.Which is the easiest coin to mine and get some real money(how less does not matter)

Just wanna try and see how it works.
Out of curiosity.

Thanks

Create your own coin, do a Ninja launch, know how to point appropriate pre-booked hash at low rates, do exceptional marketing, make lot's of false promises about a road map, ensure all the pools that mine altcoins pick up for the launch (pre-negotiated). Have a roadmap for development filled with false promises and tons of nonsense, a gimick can help.

Launch your nodes; launch, mine the majority stake of the supply, then manipulate the price using multiple accounts on the exchanges using automated trading software, creating tons of volume thus drawing attention.

Cycle this endlessly, up and down, and basically milk every newbie who enters the game on how it works... You only learn the hard way.


My miner doesnt show up on network but running? I have an S3+ and yesterday it stopped showing up on my IP scan and connecting to my pool. It still runs the fan (very low speed though) and shows the lights for a network connection, so does my modem. But I can't access its setup or see it mining in my pool. I have tried all the usual troubleshoots, 3 different PSU's, reset, new internet connection but none of them helped, any idea why this could be happening, help is appreciated

I have posted how i got my miner to run on bitcointalk at the following link: https://bitcointalk.org/index.php?topic=1161887.new#new  try to see if these tips work for you...


Understanding Nano Ledger S concept + Full Node Nano Ledger S is often referred to as a cold storage hardware wallet. If my understanding is correct, this device is kind of like a little transaction signing machine to be used in conjunction with other bitcoin client software. The device has "apps" (which I don't really understand) but I think the "app" is just specifying different cryptocurrencies. Here is my understanding - please let me know if any-step is incorrect.

In order to use the device I need to link it with an actual bitcoin client or wallet service
I have seen that they recommend using Ledger Live which appears to be a wallet service and an exchange, but the website says you could also link to electrum wallet.
So I will use my desktop interface for some wallet / client software to input some details of a transaction (address to send to, amount of btc) and then it will prompt me to confirm the transaction from the device.
The actual signing (or unlocking of my UTXO's, the part that requires my private keys) happens on the nano ledger device.
When it is done preparing the entire tx message it sends this data back to my desktop, which is now safe since it has been signed already.
The client / wallet software sends the tx data off to the network to get validated and mined.
I can further use the wallet software on desktop to view valuable information like the aggregated value in USD (my native currency) of the UTXO's associated to the keys held on my ledger device, etc.

Some questions:

Since my computer is not a node, how does my client software "send the message to the network". I presume I need to be connected to wifi. Then what?
If ledger live is not a full node wallet, what is it querying to produce the information like my "account values".
I have read that full node wallets are better because they don't require me to trust a third party. Can I link bitcoin core wallet to my ledger device?
Is the idea here that when I view valuable information on my interface (like number of confirmations on a transaction, or value of my UTXO's), it is querying the full blockchain stored on my node instead of gathering information from someone else?
Is ledger wallet or bitcoin core wallet coin selection algorithms known to public?

Here is my understanding - please let me know if any-step is incorrect.

All correct.

Since my computer is not a node, how does my client software "send the message to the network". I presume I need to be connected to wifi. Then what?

Ledger Live, I believe, just connects to Ledger's service, and it uses Ledger's node. If you care about privacy and/or don't completely trust Ledger, you should not use it.

If ledger live is not a full node wallet, what is it querying to produce the information like my "account values".

Ledger's server.

I have read that full node wallets are better because they don't require me to trust a third party. Can I link bitcoin core wallet to my ledger device?

Kind of, there has been work towards integrating hardware wallet support with Bitcoin Core, but it's not particularly user friendly yet (it's possible with 0.21 and the HWI project, but you'll need to use the command line to pass stuff around. This will improve in future releases.

Is the idea here that when I view valuable information on my interface (like number of confirmations on a transaction, or value of my UTXO's), it is querying the full blockchain stored on my node instead of gathering information from someone else?

If you have that information yourself, sure - no need to trust anymore else.

Is ledger wallet or bitcoin core wallet coin selection algorithms known to public?

Both are open source software, so you could just look at what they're doing.


How do I send money from imported keys to my localbitcoin wallet? Okay, I imported keys from my desktop to MultiBit, it took a while, now I have got a file on my desktop, when I open it with notepad there is like: "receive, *walletadress", receive walletadress" etc.

Now, could you please tell me how to send money from these wallets to my current main wallet on localbitcoins?

First of all, there is no need for importing your private keys anywhere else if you want to keep them safe and inaccessible by third parties such as localbitcoins.info. You can simply create Output transaction from your desktop PC from MultiBit wallet to the public key that is presented in your account on localbitcoins.info.

For more information how to create transaction follow guide from Multibit - Send bitcoins


What precisely are vSeeds "seednodes", how to they work, how to create one for a new network? In this question we have a superficial explanation of vSeeds (seednodes), from the Bitcoin wiki, we have:

  DNS Addresses
  Upon startup, if peer node discovery is needed, the client then issues DNS requests to learn about the addresses of other peer nodes. The client includes a list of host names for DNS services that are seeded. As-of May 17, 2012 the list (from chainparams.cpp) includes:

bitseed.xf2.org
dnsseed.bluematt.me
seed.bitcoin.sipa.be
dnsseed.bitcoin.dashjr.org
seed.bitcoinstats.com

  A DNS reply can contain multiple IP addresses for a requested name.
   Addresses discovered via DNS are initially given a zero timestamp, therefore they are not advertised in response to a "getaddr" request.

  Hard Coded "Seed" Addresses
  The client contains hard coded IP addresses that represent bitcoin nodes.
  These addresses are only used as a last resort, if no other method has produced any addresses at all. When the loop in the connection handling thread ThreadOpenConnections2() sees an empty address map, it uses the "seed" IP addresses as backup.

In the Bitcoin core code base it looks like this:

// Note that of those with the service bits flag, most only support a subset of possible options
vSeeds.push_back(CDNSSeedData("bitcoin.sipa.be", "seed.bitcoin.sipa.be", true)); // Pieter Wuille, only supports x1, x5, x9, and xd
vSeeds.push_back(CDNSSeedData("bluematt.me", "dnsseed.bluematt.me", true)); // Matt Corallo, only supports x9
vSeeds.push_back(CDNSSeedData("dashjr.org", "dnsseed.bitcoin.dashjr.org")); // Luke Dashjr
vSeeds.push_back(CDNSSeedData("bitcoinstats.com", "seed.bitcoinstats.com", true)); // Christian Decker, supports x1 - xf
vSeeds.push_back(CDNSSeedData("bitcoin.jonasschnelli.ch", "seed.bitcoin.jonasschnelli.ch", true)); // Jonas Schnelli, only supports x1, x5, x9, and xd
vSeeds.push_back(CDNSSeedData("petertodd.org", "seed.btc.petertodd.org", true)); // Peter Todd, only supports x1, x5, x9, and xd

When you actually go to those addresses in a browser you get something unintelligible, such as this:

All close forks of Bitcoin have them in some way including Dogecoin here:

vSeeds.push_back(CDNSSeedData("dogecoin.com", "seed.dogecoin.com"));
vSeeds.push_back(CDNSSeedData("multidoge.org", "seed.multidoge.org"));
vSeeds.push_back(CDNSSeedData("multidoge.org", "seed2.multidoge.org"));
vSeeds.push_back(CDNSSeedData("doger.dogecoin.com", "seed.doger.dogecoin.com"));

and here Litecoin:

vSeeds.push_back(CDNSSeedData("loshan.co.uk", "seed-a.litecoin.loshan.co.uk", true));
vSeeds.push_back(CDNSSeedData("thrasher.io", "dnsseed.thrasher.io", true));
vSeeds.push_back(CDNSSeedData("litecointools.com", "dnsseed.litecointools.com"));
vSeeds.push_back(CDNSSeedData("litecoinpool.org", "dnsseed.litecoinpool.org"));
vSeeds.push_back(CDNSSeedData("koin-project.com", "dnsseed.koin-project.com"));

The question is, what are they exactly, i.e. what data do they provide, in what format? How are they configured?

Would I be able to create seednodes out of docker containers for a new network?

What tools could I use to query those nodes listed earlier?

Does anyone have a reference implementation for one of these?

Couple of points covering what it is and how it works:

The description might be out of date.  You'd need to follow the code to see how seeding is done.  E.g. IRC seeding is not used any more (but that is noted).
Those addresses are DNS seeds.  They run a DNS name server which is usually used to translate website names (like www.google.com) to IP addresses (eg 123.123.123.321).  They've made the code such that those DNS server instead of returning IP addresses of servers return the IP addresses of bitcoin nodes.
DNS operates on port UDP port 53 (and TCP) so you would not expect anything when browsing to those DNS seeds.
This is done by running special software that aims to find nodes on the network.  It keeps track of nodes that are consistently available and serves those randomly in response to DNS requests.
When a new node comes on line it will not have a history of peers it previously connected to and will contact these DNS seeds to obtain addresses of random nodes to connect to.
The next time a node starts up it will connect to peers it previously connected to (rather than DNS seeds).  If it can't connect to any it will retry the DNS seeds.
Nodes that are connected to existing nodes also share details of nodes they are connected to.
A seed node is typically a last resort.  It's a hard coded node IP that is running the node software that uses the standard (or near standard) bitcoin protocol to talk to nodes connecting to it.  This is not using DNS. This may be a last resort node to connect to if other options fail.

To implement your own for your altcoin you'd need to replicate this infrastructure.  You could just start with a fixed IP node(s) on your network but to enable decentralisation a couple of independently run DNS seeds are probably a good idea.

The crawler / DNS seed software would need to be adapted to understand the communication protocol of your coin to find all nodes in your network.


Which elements of a block are hashed? Other than the previous block hash and nonce data, which elements of a block are concatenated in order to be hashed?

The whole block header is hashed including:

Block version number
256-bit hash of the previous block header
256-bit hash based on all of the transactions in the block (hashMerkleRoot)
the current timestamp as seconds since 1970-01-01T00:00 UTC
Bits (updated when he difficulty is adjusted)
Nonce

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


What order do transactions appear in a block? Is it up to the miner? It seems to be random or up to the miner from what I can tell.

But to store blocks, one must keep the order of the transactions (in some position column, etc) because regenerating the block for later retrieval requires putting the transactions back in the same order.  Is this correct?

The first transaction has to be the miner's reward.  The other transactions can't be miner rewards.  Transactions have to appear after any transactions upon which they depend.  Other than that the order is up to the miner.  Changing the order of the transactions is one of the things a miner can do to change the block hash once he has tried all possible values of nonce.

I don't know what you're referring to with your "regenerating the block for later retrieval".  As far as I know blocks aren't regenerated.  They're created by a miner, passed around the network, and stored on disk.  There's no need to regenerate them.


Is there any way to tell if there is a miner (in a pool) on the network, from a network perspective? I'm thinking traffic analysis, packet inspection, IP.

How would that be differenciable from other traffic patterns?

How active do admins look for such patterns?(I'm thinking more P2P stuff)

Pool miners connect to the pool server, not to the P2P network. You may be able to find the pool server by tracing the origin of the blocks, but you can't find the individual pooled miners on the network, as they're not actually on the network.


When will my Lightning channel be closed? I have a force closed channel from lnbig.com and it has been pending in closing state for over 2 weeks (42600+ blocks).
When might it be closed so I can request a new one?
What are the default/average values for different channel closing types?
Is there any way for me to check force close wait period?

When might it be closed so I can request a new one?

The time in which the transaction will be confirmed will depend on the fees of the last signed commitment transaction of your channel. the person force closing submits the last signed commitment transaction so as to get back the balance that is owed to them. You would need to monitor that transaction that was submitted by LNBig to the Bitcoin network to check for the fees. You can do so by searching with your funding transaction txid and any block explorer website will be able to show you the child transaction that consumes that output.  However, according to the BOLTs, the fees of the commitment transactions are always large enough for the transaction to get confirmed quickly.

  Is there any way for me to check force close wait period?

As said earlier, the force close wait period would depend on the fees of the last signed commitment transaction. If you had used C-lightning or LND implementations, it would have captured this transaction submitted. You can check whether the funds were returned to your wallet.

  I have a force closed channel from lnbig.com and it has been pending in closing state for over 2 weeks (42600+ blocks).

Just to get things straight, Bitcoin network generates blocks on an average interval of 10 minutes, which should correspond to about 144 blocks a day. Using two weeks time that is 2016 blocks. Since it's little more than 2 weeks, about 2200 blocks have been generated since it was closed. I think 42,600 blocks that you are mentioning is since the time the channel was opened way back in April.


is wallet vulnerable when unlocked for transactions? is wallet vulnerable when unlocked for transactions?.I recovered a wallet some time ago and all is good.passphrase key all looks good.But a question came to my mind about the moment we make a transaction.I guess we must be connected to the net blockchain or however  you call it.Also we unlock the wallet for the transactions right or wrong? if yes,does that not make the wallet vulnereble for hacking even for a few minuites?help appreciated.

You can create, sign and broadcast transaction on different machines. When private keys are offline it's called cold storage.
Example: Create unsigned tx (PSBT) in a watch-only wallet using bitcoin core, sign it in electrum and broadcast using bitcoin core


How do text, scripts, and other information get embedded inside the blockchain? Someone recently suggested that scripts could get embedded inside the blockchain and executed independently by designated machines. What exactly can get stored inside the blockchain, and what are the limits? For instance, if someone uses Bitcoin to purchase electronics from an online site, could the review get embedded inside the transaction and be available for all to view (as opposed to controlled by the seller site)?

Richard Kiss covered this extremely well in his blog.

There's several ways to go about embedding data in the Blockchain:

OP_RETURN method embeds data to a single output and the script following the OP_CODE is hex encoded ASCII text
Use pubkeyScript fields to have ASCII (in hex) which can be concatenated across all the outputs (the addresses as hash160 are unspendable)
Coinbase field can hold hex data, such as the Genesis Block
BCI metadata notes which are not actually included in the Blockchain, but are visible on BCI

The first method is most common and accepted, allowing for 40 bytes of text.


How does a Cryptocurrency Exchange Start I understand the basics of an exchange and how they work, but I am confused as to how one initially begins.

For example, in order for an exchange to function, there needs to be both bids and asks simultaneously. If there is no asks, then no one can buy that specific cryptocurrency therefore there is no volume/trades.

Would an exchange have to simply front some money and place ask orders themselves in order to get the volume jump started and then having the market take over?

For example, in order for an exchange to function, there needs to be both bids and asks simultaneously. If there is no asks, then no one can buy that specific cryptocurrency therefore there is no volume/trades.

No problem. One customer places the first bid. Later, someone places the first ask. If the prices cross, a trade happens. If not, then you now have an exchange with some liquidity.

  Would an exchange have to simply front some money and place ask orders themselves in order to get the volume jump started and then having the market take over?

I don't see why. If I saw a new exchange with no offers at all, I'd happily place both a buy and a sell at prices I'd be happy to exchange at. The next person to come along may beat both of my offers if they're not generous enough. Now, the two of us are in a bidding war, the spread is getting tighter, and soon the prices will be attractive to people who need to buy or sell.


Can I cancel a transaction that has no confirmations due to low satoshis? Hi all I changed the cost to transact from $24 us to $1.40 when I transferred my bitcoin funds and no one will confirm it. Is there anyway to cancel it? I can't do a double transaction because I was moving my entire wallet off my ledger Nano to GDAX

The only way to cancel it is to replace it with a newly created transaction that overrides the previous one, and hope that by the higher fee this one gets confirmed earlier.


How to fix kernel paging request error on raspberry pi miner? I'm mining Bitcoin and Litecoin using Gridseeds.

As a host/controller I'm running a Raspberry Pi with ArchLinuxARM.

I'm using the latest Arch image and compiled cgminer from this github repository:

https://github.com/girnyau/cgminer-gc3355

I'm running 10 Gridseeds. They are running well at 3.6 MH/s Scrypt (10x 360kH/s @ 850 MHz) until some point when it goes Oops:

[ 4565.377848] Unable to handle kernel paging request at virtual address 00002055
[ 4565.385255] pgd = c9df8000
[ 4565.393214] [00002055] *pgd=c9df8000, *pte=00000000, *ppte=00000000
[ 4565.404992] Internal error: Oops: 17 [#1] PREEMT ARM

Here is a screenshot:

Why? And how to fix this?

Ok, I found the solution here and here:

You have to enable SLUB debugging for your linux kernel. Therefore you have to edit your linux kernel command line:

sudo nano /boot/cmdline.txt

Add the following code at the end of the first line (on the same line as the other text, don't add new line!).

slub_debug=FP

Save the file then reboot your Raspberry Pi.

What the above does is basically enable some kernel debug mode on the Raspberry Pi. The mentioned kernel paging request error seems to be a kernel bug and gets caught by the debugging settings.

The downside is that the overall performance of the raspi is lower. But that does not affect the mining performance at all.


JSON RPC: Fatal error: Uncaught exception 'Exception' with message 'Request error: Array' I run a small exchange, and we are having a  problem with the DIMECOIN wallet. when sending amounts over 1 million coins. we get the following message when error reporting turned on. I can't for the life of me determine what the error is.

Fatal error: Uncaught exception 'Exception' with message 'Request error: Array'
stack trace: #0 ../class.wallet.php(36): jsonRPCClient-     >__call('sendtoaddress', Array)
#1 ../class.wallet.php(36): jsonRPCClient->sendtoaddress('7EFMZkPb6sHhKgk...', 69986000) #2
../withdrawalqueue.php(128): Wallet->Withdraw('7EFMZkPb6sHhKgk...', '69986000', '1', 'DIME') #3 ../index.php(334): include('..') #4 {main} thrown in ../jsonRPCClient.php on line

Here is my code:

if ($total > 1000000) {
        return $this->Client->sendtoaddress($address, (double)round($total, 2));
}
elseif($total > 10000000) {
        $amt2s = $total * .1;
        $i = 0;
        do{
            return $this->Client->sendtoaddress($address, round($amt2s));
            $i++
        }
        while($i < 10);

}else{
        return $this->Client->sendtoaddress($address, (double)sprintf("%.8f", $total));
    }

After investigating, it turns out that the problem lies with the dimecoin wallets in built max money variable, which is capped at 10 million. as you may know, this functionality only affects the maximum size of a transaction, not the actual money supply.


Why was giving someone else my 12 word backup a bad idea? I lost my bitcoin last night when someone on blockchain support asked me to tell them my 12 word backup in order to reverse my bitcoin transaction that was unconfirmed at that time. Finally, my balance remained zero. Can someone explain to me what happened? Is there any chance for me to recover my funds?

someone on blockchain support ask me to tell him my back up fund 12 word in order to reverse my bitcoin which was unconfirmed in my transaction

Sorry to say, you were definitely scammed.

You cannot reverse a bitcoin transaction in that way, the scammer only told you that so that you would give them the 12 word phrase. With that phrase, the scammer could recreate your wallet on another device and steal your coins.

Do not ever give someone your private keys, seed phrase, PIN code, password, etc. Any legit customer service will not ask you for this.


Solo mining before wallet got sync'd So the question is can i start mining(solo)/using my wallet for transactions or whatever when my wallet is not sync'd? I've tried to mine solo but it doesn't work =(.

You can't solo mine if you're not synched. In order to mine, you need to know what the longest chain is, and you can't do that until you're synched.


How do I detect a DDOS attack on my node? I have seen some posts on bitcointalk.org that there is a DDOS attack against nodes happening right now and they have instructions how to ban the attacking IPs.

How can I tell if my node is getting DDOS'ed? I did a getinfo command and everything looks normal.

The generic way to detect a DoS or DDoS attack against your node would be to connect to your node from an outside network.  For example, if you run a home node, you could use a remote Virtual Private Server (VPS) to connect to your node:

bitcoind -connect=<your_home_nodes_ip_address>

If that works, then you're not being attacked at the moment.  However, note that it could fail for legitimate reasons such as your home node not being configured to accept incoming connections or all of your node's incoming connection slots being legitimately filled.

Other ways of detecting an attack are more specific to the type of attack.  Some suggestions are provided below, but it's not an exhaustive list.

Bandwidth exhaustion

This is an attack against your entire network connection, not just your node.  It's one of the easiest attacks to notice because all of your normal traffic either ceases or slows to a crawl.  If you have bandwidth monitoring on your network (such as often provided by VPS services), you'll see the traffic spike.  If you don't, you can detect it easy by high latency and failure rates through ping:

ping example.com

This is the hardest attack to block, but it's can also be somewhat expensive for the attacker (not necessarily because they pay for the bandwidth---many of these attacks are performed with stolen resources---but because access to comprised networks for use in attacks is in high demand).

Connection slot exhaustion

By default Bitcoin Core and derived full nodes only allow a maximum of 117 incoming connections (another 8 connections are reserved for outgoing, bringing the total to 125).  Attackers have been known to attempt the fill all of these slots in order to prevent legitimate connections.

You can get information about your connections and peers from the Bitcoin daemon using the following commands:

bitcoin-cli getnetworkinfo
bitcoin-cli getpeerinfo

In the Bitcoin Core GUI, you can get much of the same information in a nice display by opening the Help menu and then clicking Debug.  The Information and Peers tab provide information, and you can right-click on a peer in the Peer tab to perform some actions:

Screenshot from my Bitcoin Core GUI wallet.  Not the best image since I connect solely to my border node, but hopefully you get the idea.

Keep in mind that your connection slots can also fill up with legitimate clients and other nodes.  Bitcoin Core has been getting better over the last few releases at dealing with people who attempt to attack this way and there are some nifty long-term ideas for making these attacks expensive for some classes of attackers but still affordable for regular users.

CPU and I/O exhaustion

BIP37 specifies Bloom filters for the Bitcoin peer-to-peer (P2P) protocol.  This may have originally worked fairly well, but as blocks have become larger and transactions have become more complex, full nodes are increasingly taxed by lightweight clients requesting filtered blocks.

Attackers can exploit this: for a very small amount of bandwidth on their part, they can ask full nodes to perform a modest amount of I/O retrieving old blocks from disk and a large amount of CPU filtering those blocks through a Bloom filter.

Detecting this attack is simple: your bitcoind will begin using a large amount of CPU for an extended period of time even though it is fully caught up to the best block chain.

If you find yourself under this type of attack (or wish to prevent it in the first place), you can start bitcoind or bitcoin-qt with the following option:

bitcoind -peerbloomfilters=0

Or add it to your bitcoin.conf file:

peerbloomfilters=0

Note that this means most P2P lightweight (SPV) clients will no longer connect to you if you disable bloom filters using the above option.

There has been discussion of disabling Bloom filtering by default in the past and encouraging SPV clients to use other methods of synchronization, such as downloading full blocks (high bandwidth but very good for privacy) or using committed Bloom filters (better privacy than BIP37 Bloom filters and probably reasonable bandwidth).


How can one find everyone holding IOUs from a given issuer in Ripple? In Ripple, anyone can issue IOUs, which later can be passed on to other parties in the network through a web of trust. How can one find every account holding IOUs from a given issuer? Would it need to be done through crawling the trust network, or is there an easier way?

To find all the accounts that hold an asset, e.g. USD/gw1, you just need to use the account_lines API on the gw1 account and filter out the USD entries (or whatever currency code you are interested in).

Although you could recursively look up the account lines of each found account in turn, that doesn't tell you anything more about who "holds the IOUs from a given issuer" which was your question. It instead tells you how much each found account would currently be able to redeem via the issuer. For example, if account_lines on gw1 says UserA has 100 USD/gw1 and account_lines for UserA says they also have -50 USD/UserB, then UserB could redeem 50 USD via gw1 (not accounting for any quality or transfer rates that may be set).


Alt coins as Bitcoin sidechains So I was reading this discussion today and came across this concept:

  Monero, Litecoin, Ethereum ... will be Bitcoin sidechains before long, and
  as there's no additional value to having standalone blockchains, the
  sidechain implementations will naturally persevere and prosper due to
  the network effect.

I vaguely grasp the idea of implementing a sidechain. I don't grasp how an entirely different blockchain, such as Ethereum, could possibly be implemented as a Bitcoin sidechain. Is this a real thing that could happen? How?

The idea is that Bitcoin is agnostic when it comes to any sidechains derived from it.  When some coins are brought in from Bitcoin to the sidechain, Bitcoin only sees what it always sees: transaction outputs locked up by an encumbrance script.  The other chain must be aware of Bitcoin's blockchain, and from there, the sidechain's rules will see that the coins have been encumbered such that the coins are now issued on the sidechain's blockchain.

So let's say that Ethereum does not issue ether via mining reward, but rather requires you to lock up bitcoin on Bitcoin's blockchain, thus "moving" that bitcoin from the main chain to the sidechain.  Now the ether can be traded, payed to a smart contract, or anything else that ether can do on the Ethereum block chain.  You can even trade it back to the main chain, thus claiming the bitcoin that was "moved" to the Ethereum chain.  The fact that the two blockchains are fundamentally different doesn't matter, as long as the sidechain is aware of the parent, and can handle moving coins back and forth.

You may want to check out this answer for a more in-depth explanation to sidechains.


wallet.dat size in Bitcoin Core Just created a new wallet using Bitcoin Core v0.15.1 (Windows x64), encrypted it with a password, and created one receiving address. The size of this wallet is 1 Mb.

In comparison, my old wallet, with about a dozen receiving addresses and transactions, encrypted using the password of the exact same length, is only 100 Kb.

I thought the 1 Mb is too large and suspicious. What could be the reason for this size?

The default size of the keypool was raised from 100 keys to 2x 1000 keys.

This was done in order to reduce the cases where recovery of a backup needs to decrypt the wallet to generate further keys.


Looking for JS/Node.js code example to sign a transaction (with multiple UTXOs) with only the extended private key Is there any Javascript code out there or examples on how to sign a transaction by using the extended-private-key?

What I am essentially looking for is code that will help derive the private key, that I can then use to sign an individual UTXO with.

Thanks in advance!

For anyone that might be interested in this, there is a great BIP32 library from the same people who created the bitcoinjs-lib and it has the tools to derive your private keys from the extended master-private-key.

const t = bip32.fromBase58(extPrivateKey, zenCashNetwork);

const derivedIndex = `${utxo.AddrType}/${utxo.AddrIndex}`;

const wifKey = t.derivePath(derivedIndex).toWIF();

In our case, we needed this to sign a ZenCash transaction


Provide payment processing to my community I want to create a simple app to allow people accept Bitcoin in my community with low fees. I was thinking to build a full node on my server and made all of the transaction pass through it, do you think is a good idea or there is a better one?

Yes, it is a very good idea to run a node for a community, where people trust each other, but not the entire world.

Your node provides the trust about a payment going/coming through. The key is to limit the trust to this and not more.

Let every person hold their own keys and wallet software to spend their received money. Let them only consult you about the state of the blockchain. You can do this by exposing your node as an explorer or by allowing people in community to connect to you privately(api, rpc calls etc)

If you are concerned about hosting due to legal/logistics business, provide people a method to access & compare as many publicly exposed explorers as possible, to consult for txs, but people need to hold their keys.

(A meta discussion is that over time you might even want to run a mining operation for a truly sovereign community.)


Problems restoring wallet First of all .. yes im stupid.
Now .. I had some BTC a few years ago. Thought I had kept it safe, now I seem to have reinstalled the OS on that PC and wiped profile folder. I looked around for a wallet.dat file and found one, but it could also be a file of another crypto currency .. not sure, it's so long ago I'm not sure what I did anymore but the date on the file seems on the old side (december 2013).
I installed Bitcoin Core (I used what existed before CORE came out .. just bitcoin afaik ?), I let it sync for a day and am now caught up.
I replaced the wallet.dat file and started the client again. First it took a few minutes rescanning, then crashed at 100% (???). I restarted client again, now it said it had to update the blockchain a bit more, it was at 99.9% and quickly finished.
Now it shows my wallet is empty, but it also tells me it is encrypted and locked. I tried unlocking from the debug console, but it tells me the pw is incorrect. This is weird because the only thing I'm sure of is that this is the correct password.
Is it possible the encryption type has changed through the years and I need to somehow upgrade my wallet.dat or something ?
Even without unlocking should I be able to see the balance at least ?
I know its also possible to have the private key saved somewhere (thats what I should have done, but what I have saved looks short to me, I assume its the password.)
Looking at the balance of 0 BTC i have a feeling this jsut means I'm screwed. I only have myself to blame. I'm still going to attempt to find another backup file, or attempt to restore deleted files from that disk, maybe there's still something there.

Is it possible the encryption type has changed through the years and I need to somehow upgrade my wallet.dat or something?

According to https://en.bitcoin.it/wiki/Wallet_encryption

  This page describes the algorithm used for encrypting the wallet.dat file used in the original Bitcoin client.

  Wallet encryption uses AES-256-CBC to encrypt only the private keys that are held in a wallet. The keys are encrypted with a master key which is entirely random. This master key is then encrypted with AES-256-CBC with a key derived from the passphrase using SHA-512 and OpenSSL's EVP_BytesToKey and a dynamic number of rounds determined by the speed of the machine which does the initial encryption (and is updated based on the speed of a computer which does a subsequent passphrase change)

According to https://github.com/bitcoin/bitcoin/blob/6b8a5ab622e5c9386c872036646bf94da983b190/doc/README

  Bitcoin 0.4.1 BETA

  Technical details of wallet encryption

  Wallet encryption uses AES-256-CBC to encrypt only the private keys
  that are held in a wallet.  The keys are encrypted with a master key
  which is entirely random.  This master key is then encrypted with
  AES-256-CBC with a key derived from the passphrase using SHA512 and
  OpenSSL's EVP_BytesToKey and a dynamic number of rounds determined by
  the speed of the machine which does the initial encryption (and is
  updated based on the speed of a computer which does a subsequent
  passphrase change).

The current version's C++ code at https://github.com/bitcoin/bitcoin/blob/master/src/wallet/crypter.cpp mentions the same algorithms but I haven't tried to work out if the encryption is in fact identical to the early versions or if this is even the relevant source file (though it's name and location suggests so).

It seems likely the encryption method is compatible between current and older versions.

I would hope that any competent software developer, when changing the encryption method, would implement a wallet version number or other indicator that would allow new software to detect older wallet.dat files and either upgrade them silently or provide an appropriate message to the user.

I may be wrong though.


Why is it bad to download the full chain from a third party with Bitcoin Core? I know Bitcoin Core downloads and processes the full chain much quicker now than it used to but what exactly is so bad about downloading a compressed blocks, chainstate and database folder from a third party?
In the event of any malicious changes to the chainstate, wouldn't Bitcoin Core at its startup reject the new blocks anyway?

No, the chainstate is the nodes view of correctness. It would take many hours or days to re-verify the whole chain on most hardware, so an assumption is made that the state stored at the previous shutdown is most likely correct. There's some sanity checking of the previous couple of blocks to make sure there is no gross accidental corruption, but malicious modifications of the chainstate before that time will not be caught.
A maliciously modified chainstate can contain fake outputs that do not exist in the canonical one, meaning you could be duped into accepting a false transaction paying money to you that nobody else would consider valid. If any significant portion of the network was downloading unverified chainstate databases it would be a considerable issue.


Can a transaction be conditioned on signing another transaction? I was thinking around http://lightning.network/ .

My problem is Alice sending coins to Bob via Eve: A -- tx1 -> E -- tx2 -> B

Is there a way to condition tx1 on Eve signing tx2?

Not directly, but you could do something similar by combining tx1 and tx2 into a single transaction.
So, instead of:

tx1:
Input         | Output
Alice (1 BTC) | Eve (1 BTC)

tx2:
Input          | Output
Eve (0.99 BTC) | Bob (0.99 BTC)

you could use:

tx:
Input          | Output
Alice (1 BTC)  | Eve (0.01 BTC)
               | Bob (0.99 BTC)

This doesn't seem useful for the lightning network, because you really don't want to have a payment fail just because a settlement somewhere along the path failed.


Bitcoin Native Script Language I am intrigued by this Bitcoin Script Language, I want to learn how to program Bitcoin with it.
Any idea where I can, find some documentation to read/practice  with ?

Script will not be very useful if you dont know first how bitcoin work in deep, I suggest programming bitcoin, which guide you to re build the whole bitcoin software with a whole chapter for Script
free and open source here:
https://github.com/jimmysong/programmingbitcoin


Will Schnorr Multi-signatures completely replace ECDSA? I stumbled upon the fact that schnorr signatures will most probably replace the current ECDSA system in a future BIP.

Is it worth learning about ECDSA or this will become obsolete/useless/confusing knowledge ?

Or should I go straight into schnorr signatures, for example how will it impact a model like this

Schnorr signatures will not replace ECDSA. Schnorr signature verification is expected to be implemented with the Taproot soft-fork using SegWit witness version 1. This means only outputs that are locked in v1 SegWit version are expected to produce a valid Schnorr signatures.

ECDSA will continue to be used for spending current non-SegWit and v0 SegWit outputs. All outputs having the OP_CHECKSIG opcode will continue to use the legacy ECDSA signing algorithm and verification.

So, understanding ECDSA is important for understanding the signature verification behind spending all outputs that are not native v1 SegWit. According to P2SH.info only over 2% of all the BTC value locked belong to native SegWit scripts, that too after almost 2 years of implementation. So it can be safely assumed that V1 implementation might not completely replace all current output locking scripts, needing you to understand ECDSA signing algorithm as well if you plan to build products that would accept Bitcoin that require ECDSA signatures to spend.


Error: Prune mode is incompatible with -txindex How do i remove this prune mode??

How do i remove this prune mode?

There is documentation which says

To enable block pruning set prune=<N> on the command line or in bitcoin.conf, where N is > the number of MiB to allot for raw block & undo data.
A value of 0 disables pruning. The minimal value above 0 is 550.

Related

How can I run bitcoind in pruning mode?


Transaction verification by miner VS full node with & without SegWit I'm trying to fill a few gaps in my understanding of transaction verification and would appreciate any insight.

Without SegWit

Miners broadcast new blocks which contain the signature(s) with every transaction.
Miners can choose to decide whether or not to verify every transaction in the block. They're incentivized to verify every transaction because otherwise the block may be invalid and they would lose their reward.
Full nodes store all the blockchain data and can optionally verify the transactions as well.

Q1: Do full nodes have any incentive to validate transactions they're not directly benefiting from? How often do full nodes actually validate transactions?

With SegWit

Miners broadcast new blocks which may or may not contain the witness.
As before, miners are incentivized to validate the transaction but are also incentivized to omit the witness when broadcasting new blocks to minimize bandwidth.
Full nodes may or may not store the witness data as part of the full blockchain.

Q2: If a full node wanted to validate a transaction but the miner didn't broadcast the witness as part of the new block, who would the full node request the signature from? As far as I understand, there are plans to do witness "pruning" in the long-term to minimize the size of the full blockchain, but what enforces keeping the signatures around in the short-term?

Do full nodes have any incentive to validate transactions they're not directly benefiting from?

Yes. If they did not validate all blocks and transactions, they could end up on a blockchain fork which could be facilitated by an attacker. Validating all blocks and transactions allows them to be sure that the node is on the right blockchain.

  How often do full nodes actually validate transactions?

For new blocks and transactions, all the time. Every single new block and transaction received by a node is fully validated according to the node's consensus rules. During the initial blockchain sync, transactions and blocks are only partially validated (signatures aren't validated) up to a certain hard-coded block hash, and only if that block hash is part of the best header's chain.

  If a full node wanted to validate a transaction but the miner didn't broadcast the witness as part of the new block, who would the full node request the signature from? As far as I understand, there are plans to do witness "pruning" in the long-term to minimize the size of the full blockchain, but what enforces keeping the signatures around in the short-term?

Segwit nodes will always ask for the block with witnesses. If a block is sent to them without witnesses even though witnesses is asked for, the block will be considered invalid and the node that sent the block will be temporarily disconnected from the node and banned. The same goes for transactions, but without the disconnect and banning IIRC. To always ensure that a block comes with a witness, a segwit node will never request a block from a non-segwit node.


How to make bootstrap.dat work with bitcoin qt I have downloaded the bootstrap.dat torrent to make bitcoin qt synchronize faster.
I have searched the bitcoin directory by writing in the Run Application "explorer %APPDATA%\Bitcoin"
I have dropped the bootstrap.dat file in there. (other files/maps in there are, blocks, chainstate, .lock, db, debug, peers.dat, wallet.dat/
I have opened the bitcoin qt program through Start.

And the bitcoin qt is not importing the bootstrap.dat. It just start synchronizing from 5 years.

Can someone tell me how to solve this

The importing process is not instant, every block from the bootstrap.dat has to be verified first.

You could be looking at this process of verification.


How do I double SHA-256 the header of block #59,500? I'm not sure how to combine all of this information.
https://blockchain.info/block/00000000096af43105123c499521e1d131d172e7e1bf2ed0843290a921f1f6a7

Version
1

Time Bits
470771548 (is this the right number to use for Time Bits?)

Merkle Root
 ff682ef66cd1b56213fd4db9462fb138f6d8c16d706d41969a7eacc819528038

Nonce
16641419

Hash of Current Block
00000000096af43105123c499521e1d131d172e7e1bf2ed0843290a921f1f6a7

Hash of Previous Block
00000000023bbab0e78a22d27fbd2d0cd13f8302fb3f560138e0e81d087ac7a1

take first 160 symbols from https://blockchain.info/block/00000000096af43105123c499521e1d131d172e7e1bf2ed0843290a921f1f6a7?format=hex

should I explain more? :))))

update:

01000000 version

a1c77a081de8e03801563ffb02833fd10c2dbd7fd2228ae7b0ba3b0200000000 prev hash

38805219c8ac7e9a96416d706dc1d8f638b12f46b94dfd1362b5d16cf62e68ff merkle hash

27b80a4c timestamp

5c670f1c bits

8bedfd00 nonce


Is it possible to spend bitcoins from private key 0? In [1]: from bitcoin import *

In [2]: privtoaddr(0)
Out[2]: '16QaFeudRUt8NYy2yzjm3BMvG4xBbAsBFM'

On blockchain.info, there is 0.01 BTC unspent in this address. Is it possible to spend the bitcoins? If not, why?

While 0 is not a valid element to use as a private key, and as such whatever public key that your software generated which was then hashed to the address is also not a valid public key, the address 16QaFeudRUt8NYy2yzjm3BMvG4xBbAsBFM itself might be a hash of some other valid public key.  Since the scriptpubkey for this address only cares for a public key that is hashed to this specific address, and a valid signature for it, there might exist some unknown valid private key that fits for spending the funds sent to the address.

We will probably never know if such a key exist.


Is mining an antieconomical process? I will (probably) oversimply things, but I see it like that:

Gold linked currencies: someone stores in vaults the value of the circulating money (1) and that "real wealth" is safe to be eventually put again on the market and used for something useful (build microchips, drugs, or something else)
Fiat-currency: someone "prints" money for free (or almost).
Bitcoin: issuing currency costs as much electricity and equipment as the value of the issued BTC (2). Those resources are lost forever.

(1) or a fraction of it

(2) it is an approximation, since the cost of issuing BTC can be more or less than the value of issued coins, but it will not be far from it. If it is very profitable more people will mine, making difficulty increase, if it is hardly or not profitable people will stop mining making difficulty decrease.

Is it correct? Does it mean that bitcoin has burnt some billions of dollar worth of resources?

Did someone address this economical and ethical problem?

So first of all, 'anti-economical' is not a proper word and doesn't have a clear definition.

But I'll try to answer the question:

1) It is true that in a perfect market for mining, the cost of mining should be equal to the mining revenues generated. But think of it: For most of bitcoin's history they weren't worth very much so even if at the time people spent as much on mining as the bitcoins were worth this would have been a small amount. Most of the current value of bitcoins came through the price increase. Overall, this means that only a fraction of the value of bitcoin's were actually spent on mining.

2) I think it's wrong to say that those resources were 'lost forever' as they served to verify transactions and maintain the bitcoin network. This is an extremely valuable service. It would be more adequate to compare the costs of mining to the costs of maintaining the bank's payment processing infrastructure. So it only makes sense to say "resources spent on mining are lost forever" if you applied the same to a significant portion of bank's expenses.

3) In the medium to long-term miners will make most and then all of their revenues not from mining new coins but from transaction fees. So we would expect that the total cost of mining will end up being equal to the transaction fees. This means that transaction fees or how much people value making bitcoin transactions will drive miner's revenues and thus how much they invest in mining hardware and electricity which in turn will drive the difficulty. That seems like a pretty efficient system to me.


How to subtract two points on an elliptic curve? Please tell me if there is a formula for A-B, (That is, subtraction of two points / minus). I know how two points are added, A + B this addition is described in detail

(Please tell me how you can change the formula to subtract two points / minus) A-B

You can negate a point (x, y) by simply changing it to (x, −y).

The document that defines ECDSA reminds us of this fact:

https://www.secg.org/sec1-v2.pdf

Here's a screenshot:

So once you have negated one of your points, just add it to the other one, and you have achieved subtraction.


How do bech32 addresses compare to P2SH addresses in transaction size? Bech32 (starts with bc1) and P2SH (starts with 3) can both be used for segwit transactions. I know bech32 is supposed to create smaller transactions, but I'd like to know how much smaller (than P2SH). How do transactions coming from a normal single-key address compare?

bech32 produces smaller transactions than P2SH segwit transactions.

one extra byte per output to create P2SH outputs than to create bech32 utxos (P2SH uses OP_HASH160 and OP_EQUAL in addition to a 20 byte hash in its script, whereas bech32 just uses a fixed 00 byte in addition to a 20 byte hash), and
23 extra bytes per input to spend from P2SH utxos than from bech32 utxos (P2SH has to produce the script that was hashed when spending in the sigscript, which takes 23 bytes to encode - bech32 has no non-witness sigscript at all).

Basically P2SH requires a script hash, native SegWit doesn't, and everything else is much the same. Native SegWit provides the script when the output is created, and P2SH provides it when the output is spent.

If you want to know how much you saved (or can save) in each transaction, Blockstream explorer provides nice feature, where you can see the savings. For example for this transaction, can save extra 16% on fees


Redeem multisig tx using bcoin with multiple inputs (from an exhcnage) I have a multisig tx with multiple inputs and I'm having trouble completing this tx.
Here's an example tx https://blockchain.com/btc/address/3HMQrFkYexL3FMhPnXPAoDFsFs8LiqB8ou
Following the bcoin guide, I'm stuck at step 2 during the redeem part. https://bcoin.io/guides/multisig-tx.html
The error I get is Code: -25, Error: bad-txns-inputs-missingorspent
How can one redeem a multisig tx with multiple inputs?

That guide might be a bit outdated. There is a newer guide that just runs through the CLI commands here.
You can also join us on bcoin slack or on IRC in the #bcoin channel.
We'd need more information from you about how you constructed your transaction. The error you're getting indicates that you are trying to spend from a non-existent output. It may never have existed, or it may have already been spent in the past.


Is it illegal to trade Bitcoin OTC in the United States I am considering selling Bitcoin OTC.  As far as the legalities go, is it legal to anonymously trade Bitcoin for cash without taking KYC information and registering with FinCEN?  I know all the "big boys" like Gox require information but I am vehemently against that and I'm too small to pay all these registration fees as well as keep up on the behemoth of AML laws.  This is more for some extra side cash and to help people get BTC easily.  How big of a boy do you have to be?  I however do not want to do anything illegal.  I do not want feds showing up at my door.  What limits must I conform to in order to comply with the law?

I plan on doing local cash and bank deposits.  Will a bank flag you for having $1,000/mo being deposited into your account at random locations?  $10,000?  $20,000?  What are the limits before things get frozen and\or become illegal?  Before I have to become a legitimate MSB

I want to make it clear that I do not believe in tax evasion.  I plan on accurately reporting all profit made.

I do live in the US.  I will be selling in the US.

I noticed this similar question (Legal issues / banking issues selling Bitcoins to people OTC?) and it mentions a limit of $1,000 per day per person.  Does that mean I as a seller can not do more than $1,000 per day (since I am a person), or each individual person I deal wtih can't do over $1,000 per day?

Yes it is illegal to trade OTC because you will be consider a money transmitter.

As long as you file with FINCEN, you will be on the clear.


Is it possible to "unmine" particular coins? Imagine that a government seizes a large amount of bitcoins in a raid such as with "Silk Road". Is it possible to invalidate those particular coins and send them back to the "pool" to be re-mined so that that government cannot profit from the seizure?

Technically, yes it's possible to do this.  Practically, doing this would probably break everyone's trust in Bitcoin.

One of Bitcoin's principle guarantees is that nobody can confiscate anyone else's bitcoins through the Bitcoin protocol.  This protects all of us, but it also means that we're each responsible for keeping our private keys secure.  If we fail to do that and someone---like a hacker or government agent---steals our private keys, then they also get the benefit of Bitcoin's confiscation resistance.

If we weaken this guarantee even once to confiscate bitcoins from the person or group we like the least, then it becomes clear that Bitcoins aren't secured by math, they're secured (or not) by the same sort of social guarantees that secure bank deposits.

If you or anyone else personally wants to prevent your bitcoins from falling into the wrong hands, you can use simple encryption software or Bitcoin multisig to try to prevent anyone from getting your private keys.  Doing this in a way that is secure against rubber-hose cryptanalysis is hard, but better tools for it may become available over time.

Using locktime transactions or the upcoming OP_CLTV opcode, you can even voluntarily choose to give your bitcoins to future miners if you have to delete your keys to prevent an attacker from seizing them.


Transaction confirmed by network but never showed up in bitcoin-qt I've sent a large amount of coins to 1K7SzBTPGyyEtWsudwHpjg31LjrPf17qr4 but my bitcoin-qt client (V. 4.7.4) doesn't show any balance.

1) Under the "Receive coins" tab it shows the same address
2) The client is synced and up to date
3) Under the "Overview" tab it shows 0.00BTC for both "Balance" and "Unconfirmed"
4) Under the "Transactions" tab it shows no transactions
4) http://blockchain.info shows 278 Confirmations.

Any ideas? I am getting real worried now.

Launch the client from the command line with -rescan and it will recompute the balances for all addresses in your wallet.

For Windows:

C:\> Bitcoin-Qt -rescan


Converting raw scriptPubKey to readable format I am debugging Bitcoin cpp code. I wanted to see what exactly come for scriptPubKey property of output. Theoretically, I know this but I want to see in the code how does it looks like.

Now while debugging I see  scriptPubKey object which is of type CScript and hence the format is different which is unreadable (see the screen shot below, it looks like char[]). How to read this value?

It looks like this :

\200\002\0\0à\210¼XUU\0\0\220»ÿÿÿ\177\0\0à¡·XUU\0

I figured it out.

setps:

Get the transactionID
RPCCall getRawTransaction transactionID - copy the rawTransaction
RPCCall decoderawtransaction rawTransaction - copy the scriptPubKey
RPCCall decodescript scriptPubKey


How can I use my pass phrase from 2009 to recover my wallet? The BTC core wallet lets me choose my own passphrase with 12-16 words. The latest would be late January, early February 2009. What wallet was I using? I can't find a reference online. Everyone says that passphrases weren't used until 2013. I am trying to get my wallet back. I now remember my passphrase.

Do not confuse passphrases with recovery words. A passphrase is used to decrypt a wallet file. Without an encrypted wallet file, a passphrase is useless.


Hive Mac Wallet Migration So I left Bitcoin for a while, and had transferred some of my bitcoin into a Hive-Mac wallet.  Well I recently found out that Hive discontinued development and that the previous versions are no longer compatible with the newer versions of OSX.

I noticed that Hive-Mac used the bitcoinj library, and ostensibly this is the format that the wallet is in too.

Would I have any luck trying to recover the wallet into another application that runs on the bitcoinj library (and if so, any recommendations on which app), or do I need to try and run an older version of OSX so I can get the old version to build, then go from there?

You're in luck, because I had a similar issue, and just finished making a tool to export private keys from old hive wallets. First, you should search your system for bitcoinkit.wallet, which is the file Hive used to store the wallet.

Then, go here and follow my instructions.
https://github.com/JesseCorrington/bitcoinj-wallet-export

Let me know if it doesn't work, I only tested this on my wallet, which was a non deterministic wallet with encrypted private keys. If you had a different type of wallet it likely will not work. Bug me if that's the case and I can see about updating my code.


Weird script stack entries at block #227837? At block 227837 , the coinbase TX

  e35ca7413b61397a49551fea6ebb540988afcf4a2d0e750773d38eb11b138f40

has the following script:

  03fd790304000037e4124d696e656420627920425443204775696c6408000000fb00001e0b

Which translates to:

03 = push the next 3 bytes to the stack ==> ok
fd7903 , the 3 bytes which are the block height ==> ok
04 = push the next 4 bytes to the stack ==> ok
000037e4 , the 4 bytes which are pushed to the stack ==> what's that?
12 == push the next 18 bytes to the stack ==> ok
4d696e656420627920425443204775696c64 = "Mined by BTC Guild" ==> ok
08 == push the next 8 bytes to the stack ==> ok
000000fb00001e0b ==> what's that?

So, what is the meaning of "000037e4" and "000000fb00001e0b"? Are they just some pool related nonce bytes, or is there a deeper meaning related to the signature?

Coinbase inputs have no requirements to be valid scripts, or any particular data at all other than the block height defined in BIP34.


What is the "hierarchical" about in Hierarchical Deterministic Wallets? So, the advantage of deterministic wallets is that you can recreate all private keys from the initial backup you created.

What's the advantage of having a hierarchy branching out from the master seed, instead of just one line of key pairs?

Hierarchy allows interesting use-cases.

You could have a master company key m/0' and give out m/0'/0/0 to company-branch A and m/0'/0/1 to company branch B, etc.

You could then allow audits by handing out the extended public keys (xpub) of m/0'/0 to some trust organization (or just hand out m/0'/0/0 if you want someone to audit branch A only).
Private key at m/0' can reconstruct all funds from all branches.

On top of that, online-shop of branch A could use the xpub of m/0'/0/0/0 to received funds while not revealing the wallet structure of m/0'/0/0, etc.

Another interesting use-case would be to map domain-names or other string-based- identity-systems to the hierarchy. Example: Github.com could result in m/71'/105'/116'/104'/117'/98'/... (very unoptimized way for demonstration purpose).


How many numbers to try to solve the proof-of-work problem I'm preparing for a lecture on blockchain, where I'm going to briefly explain the proof-of-work mechanism and the hashcash challenge.
To illustrate the difficulty, I want to give the maximum amount of numbers one has to try in order to find a solution, given a specific difficulty target (at this time, 18,670,168,558,400).
I believe it's a simple formula, but I can't find it again. Can someone please refresh my memory?
Thanks!
R.

There's no maximum. Instead you can find the formula linking the target and the required number of initial zeroes. Then the average number of hashes you need to calculate is 2^(target number of initial bits). Then you could input the current target to find the average number of hashes.
I don't know the formula for that but for example the block 661657, a recent one, had the target bits as many as about 76, which means it took about 2^76 hashes.


Is there a way to retrieve lost Litecoin one year ago, I transferred few litecoins to btc-e, which after few days were shut down, from my wallet.

At that time, my wallet was not fully synced with the network.

In my wallet I can still see that the transaction is unconfirmed (0 of 6 confirmations).

Is there any way to retrieve the litecoins?

Was your wallet not fully synced before the transaction? And still is in the same block as then?

If the answer to both of them are yes, then you may have a chance.

What you have to do is:

Verify the transaction in a Litecoin explorer

If you don't know the transaction, just input your address in the explorer and check it's balance.

If it still says you have balance, I recommend you to import your private key to some other lite client and use it however you want.

To retrieve private key from Litecoin-qt wallet, I would suggest this answer.


10$ registration bonus on Coinbase : how to get it? I found the picture below and I registered on Coinbase with this signup bonus link :

bonus-coinbase.com :

I didn't received the 10$ bonus yet.

When will i get it ?
Is there something I have to do to get it?

Thanks for your answers!

Ok, I found it : you get the bonus when you buy or sell 100$ of bitcoins, ethers or litecoins on Coinbase.

:)


Miner modifies unconfirmed transactions and put it into the block Is is possible that a miner modified a unconfirmed transaction (like changing the output of transaction to the miner himself) and put it into the local block, and after 10 mins the miner luckily solved the PoW, putting the block on the chain and broadcast it to others?

If a transaction was modified and finally linked onto the chain, how others check whether the tx was valid or not? (others only check if PoW answer was right or wrong, not checking tx, am I right?)

And If modified tx was on chain, how do affected people recover their assets from the loss in modified tx (in which output was modified to the miner himself)?
Could they ask to revoke the block or how could they do?

Thanks

Is is possible that a miner modified a unconfirmed transaction (like changing the output of transaction to the miner himself) and put it into the local block, and after 10 mins the miner luckily solved the PoW, putting the block on the chain and broadcast it to others?

No, because the transaction would be invalid. The vast majority of transactions contain digital signatures which signs the entire transaction. If the transaction is changed, the signatures will become invalid and thus the transaction will be invalid. And if a transaction is invalid, the block containing it is also invalid.

  If a transaction was modified and finally linked onto the chain, how others check whether the tx was valid or not? (others only check if PoW answer was right or wrong, not checking tx, am I right?)

No, this is completely incorrect. ALL full nodes verify all transactions in all blocks that they receive (as well as transactions received outside of blocks). Just because a block has a valid proof of work does not mean that the block is valid. It must still build upon a valid block and must only contain valid transactions. Full nodes still verify that transactions contained within a block are valid.

Contrary to popular belief, miners do not say what transactions are valid. Their job is to determine the order of transactions, within certain constraints. It is the job of full nodes to verify transactions, and all miners (or the mining pools) should be running full nodes.


IPv6 and Bitcoin, privacy risk? Im not great with networking, especially IPv6, but my ISP must have enabled IPv6 as Im starting to see peers both in and out with IPv6 addresses.

I dont have a static IPv4 address, and releasing/renewing it is as simple as restarting my gateway, but IPv6 comes from the host, so is that going to tie transactions to a specific device?

Im not personally very concerned, Im just trying to understand more about how the network operates.

The only difference between IPv4 and IPv6 from a privacy perspective is that IPv6 will allow an external observer to distinguish between two Bitcoin nodes operating on the same network. However, if they're different versions of Bitcoin, that's already possible.

There's a second angle, which is not really Bitcoin-specific. Most SOHO routers will not allow inbound IPv4 unless a device has specifically signaled using UPnP that the router should forward a port. However, they're typically set up to allow all inbound IPv6 traffic, which would allow your Bitcoin peers to port scan you in a way that wouldn't be possible with IPv4. You can test what they would discover using this tool, or nmap.


Cudaminer On Mac OS X installation error: "malloc.h: No such file or directory" I'm almost completely ready to GPU mine but I'm stuck on step #25 of Option #2 of this tutorial:
http://www.reddit.com/r/dogemining/wiki/index/mac_mining_guide

after running this command inside Cudaminer-master:

make

I'm getting a missing file error:

sha3.cpp:9:20: fatal error: malloc.h: No such file or directory
compilation terminated.
make[2]: *** [cudaminer-sha3.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

I believe that it has something to do with modifying "scrypt.cpp" for the manual installation of Cudaminer. All tutorials tell you to make sure to include malloc like so:

#include <emmintrin.h>
#include <malloc/malloc.h>
#include <new>

It looks like the make command is still unable to find this malloc.h file, should malloc be edited in scrypt.cpp differently for OS X 10.7.5?

My Hackintosh PC is using an Nvidia GeForce 335m

I'm able to run games like BioShock on max settings and get great performance on this hackintosh, so the drivers seem to be doing great.

any ideas?

I get the same error using OS X 10.9 MBPR.

Even though I followed http://atomton.roon.io/compiling-cudaminer-on-os-x-10-9 exactly.

UPDATE: PROBLEM SOLVED.

by changing
include malloc.h
to
include malloc/malloc.h

in both scrypt-jane.cpp
and sha3.cpp


lot of bitcoinj clients have connected to me Looking at my peers list in the debug window for my node, I can see that a lot of bitcoinj clients have connected to me. Is this any cause for concern?

If their IP addresses are all 52.*, then they're lying about being BitcoinJ and are really attacking you / the network. If so, ban them. If their IPs are all different, it's fine.


Identify if miner is mining at all This is my first time to try to run bitcoin miner on my laptop (for testing), I used bfgminer and was able to run it however I'm not sure if its going anywhere:

 CPU 0:       |  1.27/ 1.28/ 0.00Mh/s | A:0 R:0+0(none) HW:0/none
 CPU 1:       |  1.16/ 1.27/ 0.00Mh/s | A:0 R:0+0(none) HW:0/none
 CPU 2:       |  0.94/ 1.18/ 0.00Mh/s | A:0 R:0+0(none) HW:0/none
 CPU 3:       |  1.16/ 1.20/ 0.00Mh/s | A:0 R:0+0(none) HW:0/none

What does this mean, my miner is not processing or mining as I can see its 0.00Mh/s?

If You are a beginner just starting you should probably go for GUIMINER or CGminer if you are planning on mining on your GPU if you are planning on mining on CPU you should probably go with pooler-cpuminer. BFGminer is meant for ASIC like USB Block erupters.

I HIGHLY ADVISE YOU AGAINST MINING ON YOUR LAPTOP AS THEY HAVE VERY BAD COOLING AND YOU CAN BURN YOUR MOTHERBOARD AND DESTROY IT IN MINUTES.


How do I install Bitcoin Armory in Ubuntu 17.04? I am trying desperately to install the latest version of Armory on a fresh install of Ubuntu 17.04. I tried in Debian Jessie first, but something failed and it would not run correctly. Reinstalled my OS because everything online indicated that it would install on Ubuntu. So I downloaded 17.04 because I figured it would be the most up to date.

Followed instructions here: https://www.youtube.com/watch?v=bmUP26r-Pr4

Got all the way to downloading the program for Ubuntu/Debian and clicking on it. It opened in the Software Center or whatever and gave me a button with "install" on it. But when I click the button, nothing happens. It's just a button that does nothing.

Can anyone point me to a thorough and working guide to installing this on a new Ubuntu machine?

Alternatively, I have an older working version on a Windows 7 machine. The Armory version is from 2014. I wonder if I could just download the rest of the blockchain and use that to get the private keys? Would that work? I'm scared to update it and have it break at this point. The new versions have broken on every platform I've tried, including Mac. Thanks.

The latest Armory version is from this year, 0.96. If that is not the version you are installing, then you are using an old and outdated version. The most recent version can be found at https://btcarmory.com/0.96.0-release/. Download the one labeled "Armory 0.96.0 for Ubuntu/Debian 64-bit with GCC 5.3". To install it, you can open the terminal, cd to the directory containing the downloaded deb file, and type

sudo dpkg -i armory_0.96-gcc5.4_amd64.deb

You will also need to install Bitcoin Core, which you can get from https://bitcoin.org/en/download.


What would you call bitcoin wallet that give access to private keys unlike coinbase.com for example? Any Suggestions?

I suggest Non-custodial Bitcoin Wallet, But i feel it's not appropriate.

A Bitcoin Wallet is what I would call it. A wallet on a central service with no access to the private keys I would call a “custodial” wallet.


people requesting to connect and mine on facebook are legit? I recently joined a facebook group and lot of folks have been bombarding me to join my bitcoin wallet with some server for mining. Precisly, one of the guys mentioned as it is below

  KEEP your Btc in your wallet (normal 0.03) and start
  earning If you have blockchain wallet you can start to earn FREE by
  connecting your wallet direct to servers!!!  No investment, no ads, no
  refferals! PM for info

are these worth it? can they be trusted for mining association and all?

I would stay away from all of these. Nigerian princes are on facebook too. Their tactic is probably to:

Find a person who is interested in bitcoin, but has little technical know-how about the system.
Convince them that they can make easy money. Throw in some buzzwords, make it seem like they are doing something nobody else is doing.
Gain access to their private keys by convincing the user to share them. If this does not work, convince the user that they need to install a bit of software to get the mining to work / to work faster. This software is most probably a keylogger and a mining tool that mines crypto without the user's knowledge.
Profit and Repeat.

Never trust something told to you by a single user on the internet. Even this post. Always verify the information at different parts of the internet. In this case: the stackexchange page, the bitcoin subreddit, the bitcointalk forum. These are hubs for people with the same interest and deep technical knowledge.


How to prioritize bitcoin transactions when solo mining using CPUMINER? I am just tinkering. Trying to learn how things work. So making money is not even on my radar at the moment.

Because I am just in the learning stage, I am using CPUMiner on my Ubuntu 17.10 laptop. It was easy to install and get it running against my bitcoin-qt install on the same machine.

So I am already running a full bitcoin node and the miner and it is doing work. I can see that things are moving around.

What I am really struggling to figure out is how blocks are created.

I read everywhere that the full node spits out the work to be done but the miner decides how to prioritize that work so most people work on the node with the largest fee first. That makes sense. But how is that being decided? Where are the rules configured to determine if I want to discard some transactions and process others?

For example, if I really don't care how much money I make and I simply want to process the oldest transactions first (maybe those that have a low fee) just to be helpful, how do I make that happen?

How do I tell either bitcoin-qt or cpuminer (minerd) what my preferences are for what to invest my efforts in?

With this system, there is no chance of making any money but if I can understand the process better and see how it works in the real world and how I can configure it, then I can decide how to scale up (or not).

Thanks!

For this task you do not go solo but using an agent in between called the
Stratum

The node itself is supporting a custom script walletnotify which is executed whenever there is a new transaction found on the network. Then one could customise his stratum code to decide which tx actually to mine (per default they would sort them by the fees) or which ones to ignore.


MultiBit: I clicked on Close Wallet and now i don't find a wallet Yesterday, I installed a multibit in my computer and i put some bitcoin in multibit. Some bitcoin put in other site, but a majority of bitcoin it stayed in wallet..
Today, I wanted to put password in my wallet, but i clicked in close wallet.. I was sad with this situation.. So, i was finding, but it didn't appear...

After to experiment, i created other account and if i closed that wallet, it appeared in open wallet....
However, i don't understand where it stays a wallet that disappeared.. what can i do? my address was 17VxARsZCpLYcqxcaaeZQDm6gxY6e1tyXx and it's my last transaction of my wallet: http://blockchain.info/pt/address/17VxARsZCpLYcqxcaaeZQDm6gxY6e1tyXx?filter=0

how can i recover my btc or my wallet?

sorry my english.
thanks for help..

Have a read of the support topic that describes where your wallet is, which is here:

https://multibit.org/en/help/v0.5/help_support_missingWallets.html


Bitcoin unlimited nodes What would happen if I try to broadcast a transaction being funded by segwit outputs with a bitcoin unlimited node?

Segwit transaction format is unknown for BU nodes. The peer either drop the connection or even ban your IP address for a while.


Does Bitcoin have inherent value if you can fork the project and create a new cryptocurrency easily? I like Bitcoin and I like the ideas to create a limited number of bitcoins. However, I see a lot of new crypto-currencies. It seems anyone could fork bitcoin, change something in the algorithm, and release a new crypto-currency.

So I'm afraid that one could create hundreds of new crypto-currencies each day without any value.

Is this a plausible scenario?

Yes, this is a real possibility. Effectively, Satoshi Nakamoto created a billion dollar market-capitalization of currency out of thin-air. Of course major corporations are going to attempt their own flavor, it is the nature of capitalism and it is a very healthy reality, which ultimately ends with a satisfied consumer. Progressive companies are forking it, prototyping new designs, and adding improvements. In the end, the quality, scale and technical effectiveness of your product will create the market-demand absent of billion dollar promotional marketing campaigns. BTC is a purely organic, community driven crypto-currency which sells it self.

Currently, the infancy of BTC is very analogous to early 20th century automobile manufacturing. There were hundreds of car companies created in the US only of which 3 major manufacturers survived (Ford, GM, Chrysler). Analogous  to the rise of a myriad of crypto-currencies each of which claims to be better than the previous. How could you trust these crypto-currencies...? That is an unanswerable question which only the market will decide in the coming years.

BTC is the first and most secure crypto-currency; its design and function are superior to many  other proprietary builds.


Is there some way to estimate the proper value of one Bitcoin? For example, if it is stock, there can be P/E ratio, or Price Sales ratio. For Bitcoin, are there some common ways people use to estimate the value of one Bitcoin?

Unlike stocks or precious metals, Bitcoin has no inherent value; it is only worth what people are willing to pay for it, and the only way to determine that is through trading activity on an exchange.
You can try to use the same technical analyses that are used on the stock and forex markets to predict the future price, but it's incorrect to call that its "proper value".


How do I join the Bitcoin Core PR review club meetings on IRC? I would like to learn about reviewing Bitcoin Core pull requests at the Bitcoin Core PR review club. How do I join the ##bitcoin-core-pr-reviews channel on IRC (Libera.Chat network) and which IRC client do you recommend I install?
I can use the command line but I would prefer to maximize convenience and minimize setup time.

On Ubuntu, I like weechat.
On OSX I've used Colloquy before but have recently upgraded to Textual which is not free -- unless you build it from source :-).
There is even a web interface for freenode, but I'm not sure if it requires authentication to join the channel.


Can I send btc to a totally offline wallet? I want to setup a totally offline armory wallet. is it possible to send btc to a totally offline pc? Is it also safe, I guess it must be synchronized with the whole network, right? And there is something else, armory gives a paper wallet with a long code, can I use this code with any other software, in case something happens to armory?

Yes to both questions.

You only need a wallet connected to the internet to remove coins from your account, not to add new ones to it.

A paper wallet can be used with any bitcoin wallet application.


How should a Bitcoin Oracle verify a transaction prior to signing? What are the specific parts of a transaction(s) that need to be signed in the "inheritance scripting sample".  Specifically, can someone provide more detail on what exactly is signed of the transactions?

I'm assuming there are approximately 3 transactions, but unsure of what is signed by whom, and the portion of the Tx that is/isn't signed.

1) The tx that is sent to a new address with the exact amount (published)

2) The tx that is created but with a time of 10 years (not published)

3) The tx that is created but pending some oracle logic (not published)

What I'm interested in is #3 and what does the oracle specifically sign?  What does that Tx look like?

There are two ways to do that. First one is that you create a multisig transaction, and send it to an oracle/oracles, along with a request for them to sign the transaction when they discover that an event occured.
After the time comes, the oracle(s) sign the transaction and release it to you.
This is the way Orisi works

Another way is to send to the oracle(s) a request to look for an event. Then they give you a public key, and you use that public key to lock the transaction. When the time comes, the oracles publish a private key to that public one, and you use it to unlock the transaction. This is the way RealityKeys work. (although their code is closed source)

The second option is relatively easy to implement, although I'm not sure if there are any open source implementations available at this time.

The first option (signing happening on the oracle's side) is a bit more complicated, but on the other hand it allows for greater granularity of contracts. E.g. you may ask oracles to send 2030-(year-of-event) BTC once the event happens, and return the rest to the sender. The oracles may also manage the funds for the time being - e.g. you can tell them to send funds to a new multisig address if one of the oracles dies / loses it's keys. And there's a code ready to handle all that on Orisi's github repo.

For more info you might want to check out Orisi / Distributed Oracles whitepaper which deals with example implementation, and Bitcoin Wiki entry on Contracts


Trying to understand Pay-to-Public-Key-Hash I am new to bitcoin and I am trying to understand Pay-to-Public-Key-Hash (P2PKH) from the book: Mastering Bitcoin: Unlocking Digital Cryptocurrencies (p. 127). I understand that digital keys (which are derived from private-keys) are not actually stored in the network, but are instead stored by users in a wallet.

For example:
Alice wants to send Bob 1-BTC:

---------------------------------------------------------
| Sender:    Hash(alice-public-key)                     |
| Receiver:  Hash(bob-public-key)                       |
| Amount:    1-BTC                                      |
| Signature: Hash(Encrypt_{alice-private-key}(Message)) |
---------------------------------------------------------

Question:

So how can we verify this transaction is valid without having the
public-key?
If we attach the public-key with the message then why spending
time finding hash of public-key in the first place?
Are we storing
the public keys in some centralized database?
If the recipient provides the public-key and verifies the transaction
is valid how can others validate that was a valid transaction?

So how we can verify this transaction is valid without having the public-key?

The signature includes the public key corresponding to the private key that made the signature.

  If we attach the public-key with the message then why spending time finding hash of public-key in the first place?

It's not clear what you mean by "the public key". Whose public key are you talking about? Bob's public key isn't in the message.

  Are we storing the public keys in some centralized database?

When a public key is submitted with a signature, the public key is in the transaction. The transaction is included in a block, and that block is part of the blockchain forever.

  If the recipient provides the public-key and verifies the transaction is valid how others can validate that was a valid transaction?

It's not clear what you mean by "that". To validate a transaction, you just have to make sure it's entitled to claim the funds it tries to claim. You don't particularly care what it does with those funds, just that it has the right to decide what to do with them. So you don't need to know much about the recipients -- only enough to identify them when they come to claim their funds. The hash of their public key does that.


Multiple wallets on Bitcoin Core Is this possible?

I've noticed that while viewing my 'Receiving Addresses' there is a button in the bottom left hand corner of the pop-up box which reads '+New'. If I click on this will it delete or overwrite my current receiving address?!

Thanks

A wallet is a collection of private keys that correspond to addresses you control; you can spend the coins that are credited to those addresses.

The "New" button creates a new private key (within the same wallet!) and shows you the address, so that you can ask someone else to send coins there.  You could reuse an address that someone else had already sent coins to, but this means that both senders would gain information about your financial activities (since all transactions are public).  Using a fresh address helps your privacy.

The "New" button doesn't affect existing private keys in any way.  Previous receiving addresses remain active and usable, and you can browse them in the address book.