text:
how to use bitcoind "walletnotify" for unique transactions only
while using bitcoind "walletnotify" my curl command is getting 3 hits generating 3 unique transaction hashes  but requirement is to execute only once for unique transactions.
I heard about walletnotifynew from :-"https://www.multichain.com/qa/9566/how-can-i-use-walletnotify-command-to-get-notification"
but its not working .
My bitcon.config file
rpcuser=root
rpcpassword=root
testnet=1
test.rpcport=8332
rpcallowip=127.0.0.1
server=1
rpcbind=127.0.0.1
walletnotifynew=/home/scripts/transaction.sh %s
#walletnotify=curl -d "txid=$1" http://127.0.0.1:8888/api/v1/listen-transaction %s

Database entry i was transferring the withing same wallet still three incoming but there should be only one entry of outgoing
select * from transaction;
+-------+--------------+------------+-------------------------------------+-------------------------------------+---------+------------------------------------------------------------------+----------+--------+
| tx_id | amount       | made_on    | sent_from_address                   | sent_to_address                     | success | transaction_hash                                                 | tx_type  | userid |
+-------+--------------+------------+-------------------------------------+-------------------------------------+---------+------------------------------------------------------------------+----------+--------+
|    53 | 0.0000000000 | 2020-02-17 | NULL                                | 2NFgnEMcE4kvvCLXK6uiEgb3dZuVLGUK75v |       1 | 11acce71f3d10330e10d70f5ee974abe5d216ec188309b61d1f751a1615d439d | INCOMING |   NULL |
|    52 | 0.0000000000 | 2020-02-17 | NULL                                | 2NFgnEMcE4kvvCLXK6uiEgb3dZuVLGUK75v |       1 | bc3267ffcc44b8d526cbb1de19f653bc90aedda4dc4fc2fc9ab18a954e7347c1 | INCOMING |   NULL |
|    50 | 0.0001000000 | 2020-02-17 | 2N6MqukeqDftwXsVDBSBkDrnbvzaXoNwNhi | 2NFgnEMcE4kvvCLXK6uiEgb3dZuVLGUK75v |       1 | 9bb2ab339930a68f33ce3521bee46363cbd29a87c68b718c4ae415a3ba53b7b8 | OUTGOING |      1 |
|    51 | 0.0000000000 | 2020-02-17 | NULL                                | 2NFgnEMcE4kvvCLXK6uiEgb3dZuVLGUK75v |       1 | 2e0976cd310fe1d740227cec0ae615dae668d4efeea740e51b81cb1b89dd2a47 | INCOMING |   NULL |
+-------+--------------+------------+-------------------------------------+-------------------------------------+---------+------------------------------------------------------------------+----------+--------+

problem was that i was receiving testnet bitcoins  that were requested in the morning and also  their first confirmations i were deleting the entries from the database which confused me a little bit for my written code but the code was working absolutely fine, Silly lol.
Secondly my both send and listen api were getting hits simultaneously for which i added an wait thread in the listen api so that send transaction can be stored in the database first and then listen transaction...

There is no walletnotifynew option in Bitcoin, you will have to do deduplication on the application side.

but how i can deduplication ? i m getting new transaction hash for same transaction when i m sending a coin within same wallet (sending,receiving,confirmation)

You're probably doing something wrong when calculating the hash then, the transaction will be identical

may be not because i m not generating transaction hash i m just listening it and using it, you want to see my listener class?


text:
What is the key difference between the Proof of Activity proposal and Proof of Stake?
coblee (Litecoin creator) suggested a new Proof of Activity method, to complement Proof of Work, instead of using Proof of Stake (oh my!)
Can someone provide a tl;dr of what is the key problem in PoS that PoA is trying to solve, and how does it solve it?

From what I understand, Proof of Activity and Proof of Stake are methods of preventing a 51% attack.
Proof of Stake basically means that the people that hold the most coins sign the blocks that will be part of the block chain. This means that the people that have the most to lose from a 51% attack will do their best to prevent it and not risk losing their money. However, this also means that the rich users can control the network.
Proof of Activity from what I gather is a method of selecting a random peer from the entire network to sign a new block that would be temper-proof. This would mean that a 51% attack could not execute too well, as it couldn't predict who the signing peer be in the future.
The latter idea appears to be better for preventing attacks on the network, providing there are no logical problems in there. However, I have not studied either of the two methods in greater detail so I might be wrong.

So would it be correct to say that "In PoA a single output/satoshi is selected every block that has the permission to sign it (but doesn't have to)" and "In PoS multiple signatures/votes are allowed every 'Stake block', and these votes are tallied to resolve conflicts" ? In PoA, we randomly appoint a dictator per block (by BTC ownership weight), while PoS uses a majority vote. If this is indeed the difference, I'm not sure why this difference makes PoA so much better than PoS.

@ripper234 I guess that PoA is less centralised and doesn't rely on some key people to be present, whereas in PoS you put the future of the project in the hands of just a few individuals.

Then I don't understand. What in PoS makes it more centralized?

@ripper234 Relying on a few key users to be present to sign the new blocks. Those key entities could be targeted and if they all become compromised, your network could shut down.

In what way does PoS "rely on a few key users" and PoA does not?

@ripper234 From what I gather, in PoS the richest keypairs are used to sign new blocks (for example, StronCoin's "millionaire accounts"), whereas in PoA random active keypairs are used to sign the blocks. I might be wrong on this, however.

let us continue this discussion in chat

La principal diferencia entre Proof of Activity (PoA) y Proof of Stake (PoS) radica en cómo cada uno aborda la seguridad y la validación de las transacciones en una blockchain. Mientras que PoS selecciona validadores en función de la cantidad de criptomonedas que poseen y están dispuestos a "apostar" (staking), PoA combina elementos de Proof of Work (PoW) y PoS para mejorar la seguridad y la descentralización.
En PoS, los validadores son elegidos según su participación en la red, lo que puede llevar a una centralización, ya que quienes poseen más monedas tienen mayor influencia. Además, PoS enfrenta desafíos como el problema de "nada en juego", donde los validadores pueden validar múltiples cadenas sin costo, potencialmente comprometiendo la seguridad de la red.
Por otro lado, PoA busca mitigar estos problemas combinando PoW y PoS. En PoA, los mineros utilizan PoW para generar plantillas de bloques vacíos. Una vez creadas, se seleccionan aleatoriamente validadores, basándose en PoS, para firmar y completar estos bloques con las transacciones. Este enfoque híbrido aprovecha la seguridad de PoW y la eficiencia energética de PoS, reduciendo la posibilidad de centralización y mejorando la resistencia a ataques.
Además las ventajas, PoA aporta un nivel adicional de flexibilidad y adaptabilidad frente a limitaciones energéticas y de seguridad. La combinación de PoW y PoS hace que el sistema sea más resistente a ciertos tipos de ataques, como el ataque del 51%, ya que el proceso de selección de validadores es en parte aleatorio y está basado en el trabajo de minería previo. Esto implica que un atacante necesitaría controlar tanto la mayoría del poder de minado como una proporción significativa de los activos de la red para tomar el control, lo cual haría el ataque más difícil y costoso de realizar.
En otras palabras, PoA intenta resolver las limitaciones de PoS, como la centralización y el problema de "nada en juego", al integrar la seguridad de PoW con la eficiencia de PoS, creando un sistema más equilibrado y seguro para la validación de transacciones en la blockchain.
Referencias:

Bentov, I., Lee, C., Mizrahi, A., & Rosenfeld, M. (2014). Proof of
Activity: Extending Bitcoin's Proof of Work via Proof of Stake.
Recuperado el 12 de noviembre de 2024, de https://eprint.iacr.org/2014/452
Binance Academy. (2018, 12 de diciembre). Proof of Work (PoW) vs.
Proof of Stake (PoS). Recuperado el 12 de noviembre de 2024, de
https://academy.binance.com/es/articles/proof-of-work-vs-proof-of-stake
Coinbase. (s.f.). Prueba de trabajo (PoW) vs. Prueba de
participación (PoS): ¿Cuál es la diferencia?. Recuperado el 12 de noviembre de 2024, de
https://www.coinbase.com/es-es/learn/crypto-basics/proof-of-work-pow-vs-proof-of-stake-pos-what-is-the-difference
Nervos. (2023, 19 de julio). Proof-of-Work vs. Proof-of-Stake:
Desentrañando las Diferencias Clave. Recuperado el 12 de noviembre de 2024, de
https://www.nervos.org/es/knowledge-base/pow_vs_pos_unravelling_%28explainCKBot%29
BitDegree. (s.f.). ¿Qué es Proof-of-Work vs Proof-of-Stake?
Diferencias Importantes. Recuperado el 12 de noviembre de 2024, de
https://es.bitdegree.org/crypto/aprender/que-es-proof-of-work-vs-proof-of-stake

The key difference between Proof of Activity (PoA) and Proof of Stake (PoS) lies in how they combine elements from both Proof of Work (PoW) and Proof of Stake to achieve consensus and secure the blockchain.
Proof of Stake (PoS)
Concept: In PoS, validators are chosen to create new blocks and validate transactions based on the amount of cryptocurrency they "stake" (lock up as collateral) in the network. The more coins a participant holds and stakes, the higher the chances they will be chosen to validate transactions and earn rewards.
Security Model: PoS relies on economic incentives. Validators are financially motivated to act honestly, as malicious actions can result in the loss of their staked coins.
Energy Efficiency: PoS is more energy-efficient than PoW because it does not require intensive computational work to validate transactions.
Proof of Activity (PoA)
Concept: PoA is a hybrid model that combines elements of PoW and PoS. In PoA, miners initially perform PoW to mine an "empty" block header, which doesn’t yet contain transactions. Once this header is mined, a set of validators (chosen based on PoS) is randomly selected to sign the block. Only after a certain number of validators sign it does the block become a valid part of the blockchain.
Security Model: PoA leverages both computational work (for mining the header) and the economic stake of validators (for signing the block). This mix aims to enhance security by making attacks more costly, as an attacker would need both substantial computing power and a large stake.
Energy Efficiency: Although PoA still involves some PoW, it typically uses less energy than a pure PoW system since it only requires PoW for mining the header, not for validating every transaction.
Summary
PoS is a straightforward staking-based model, where block creation relies on the economic stake.
PoA blends PoW and PoS, with PoW used initially to generate a block header and PoS used to validate it, aiming to balance security and efficiency.

source: Stack Exchange

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

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

sort: votes


text:
Javascript widget that shows the balance of a particular address
Is there an embeddable javascript widget (perhaps using blockchain.info API) that can show information about a specific Bitcoin address?
Like current balance, total incoming, outgoing, and latest transactions?

Here's a third party service that creates an img:
Balance:

http://bitcoinbox.ru/display/graph.php?btcaddress=1PC9aZC4hNX2rmmrt7uHTfYAS3hRbph4UN&type=balance

Total received at the address:

http://bitcoinbox.ru/display/graph.php?btcaddress=1PC9aZC4hNX2rmmrt7uHTfYAS3hRbph4UN

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


text:
How long does it take for a transaction with 0 fees to be confirmed or rejected?
I have a problem with a transaction that has 0 btc fees:
https://blockchain.info/tx/256301465d77affb6bc7087432a9130db48dd64efa28b0460fb674eda704f382
From what I understand, eventually this transaction will either be confirmed or rejected. My question is: how long will this take, and is there anything I can do to speed up this process?
(There is an interesting answer to this question here What happens if my transaction is not accepted because I did not pay fees? but it's two years old and assumes that one is running the official bitcoin client, which I'm not)

I have seen zero fee transactions to be included in blocks within 6 - 48 hours. But I don't know any data source where to check avg and median times.

Thanks for your reply, Mikko. In your experience, is it that zero fee transactions always get confirmed eventually, even if their network propagation is at 0%?

I have not yet seen a transaction which didn't eventually come through.

The time it takes for a fee-less transaction to be confirmed can vary vastly. While sometimes you're lucky enough to have it confirmed within the next block (as if you had paid the standard fee), other times it may take days.
This depends on the current transaction volume and miners' level of altruism. Most notably though, it depends on the number of Bitcoin Days Destroyed. Older coins (coming from older transactions) are conventionally assigned higher priority, and thus will generally be included in a block sooner.
As your transaction is pending (unconfirmed), the coins it is spending are getting older and older every day, so the chance of finally getting confirmed is slightly increasing overtime. This should prevent your coins from becoming completely unaccessible, stuck in the void.
No transaction can be rejected though, there's just no such thing in the protocol.
Finally, if this happens to you and you're not willing to spend some arbitrary time in uncertainty waiting for the confirmation, you can perhaps try to create a double spend transaction with higher fees, hoping it would be picked up by a non-standard (though pragmatic) miner.

Thanks knapo, great answer. I can add that in my experience it's mostly 24-48 hours before the first confirmations.


text:
Can a Bitcoin block be less than 1mb?
Can a Bitcoin block be less than 1mb?
To my understanding, a miner receives broadcasts. However, if not enough transactions come in, then would it just prematurely hash the block?

What do you mean by "prematurely"? Most miners hash every second they possibly can, otherwise their mining power is wasted.

Yes.  Let's calculate the minimum size of a block:

The block header must be exactly 80 bytes.  This is the only part of the block that miners actually mine; the rest of the block is data that the header securely references.
The transaction count.  This isn't part of the block header and it isn't part of the block data, but it's part of the peer-to-peer protocol block message so it gets counted towards the block size.  For blocks with 253 or fewer transactions, this is 1 byte.
The coinbase transaction, the only required transaction in a block.  The coinbase transaction has the following fields with these minimum values:

4 bytes -- version field
1 byte  -- number of inputs (always 1 for coinbase transactions)
32 bytes -- outpoint txid; always 32 0x00 bytes for coinbase transactions
4 bytes -- outpoint index; always 4 0xff bytes for coinbase transactions
1 byte -- number of bytes in coinbase field (input script); always 1 byte for coinbase transactions because there's a 100-byte limit
4 bytes -- block height as a data push; required by BIP34
4 bytes -- sequence number
1 byte -- number of outputs, we're not going to have any (making the block reward and transaction fees paid in this block permanently unspendable; no real miner would do this)
4 bytes -- locktime
Total: 55 bytes

Total minimum block size: 80 + 1 + 55 = 136 bytes
Practically, the smallest reasonable blocks are in the 180-byte range.

Empty vout would make the transaction invalid. You would need to have one output of 0 BTC, 0 length, null script for a total 9 bytes (8 byte value, one byte VarInt). This would also be an anyone can spend output as a null script can be satisfied by pushing anything to the stack.

Sure.
This is one such block. It's 312 kB.

Blocks have to have at least one transaction: They must contain a coinbase which is the transaction that spends the block reward.
For example this block with only one transaction  is only    0.246 kB.


text:
Getting started
I read some reviews and would like to try my hand at this Bitcoin thing.
I see that costly, dedicated hardware is the way to go. I have a dual XEON E5420 (http://goo.gl/Frco5X), 8Gb DDRII RAM sitting on a Intel S5000VSA motherboard. I have a 15K 146Gb SAS Drive available to load an OS.

Would I just waste effort and electricity getting this up and running.
What would the best OS be to load to maximize CPU power for mining the hashes?

Sorry, "costly, dedicated hardware" doesn't refer to nice CPUs, but to ASICs. The latter are computer chips which can exclusively do mining. CPU mining has not been profitable for more than four years.

related: Is CPU mining even worth it?, How much Bitcoin will I mine right now with hardware X?, When did the ASIC mining era begin?


text:
are there other sites similiar to coinbase and circle.com
does anyone know of any other bitcoin wallet sites that offer the same instant usd to bitcoin exchange services, such as coinbase and circle.com? I must also be able to withdraw instantly to a linked bank account or credit card too. if anyone knows of a bitcoin site with same services as coinbase and circle.com for usa residents,please respond back. thank you


text:
Is there a legal way and free way to open a Bitcoin exchange in the United States?
I've been doing some reading on the state of starting a Bitcoin exchange in the United States, and I have a couple of unanswered questions.
1) What are the legal fees and process for starting a regular exchange?
2) When are the legalities surrounding exchanges like coinffeine, where two anonymous users exchange and coinffeine acts as the intermediary?
3) How can I connect with a partner in a developing country like Panama, where it is much easy to start an exchange?

There is a free way. There is a legal way. There is not a free, legal way.
Free way
Get a DynDNS account, and a Raspberry Pi. Host the exchange on your home internet connection.
I can't think of any reason why someone would trust their money to my_exchange.dyndns.biz, but I suppose you could do this.
Legal way
Money service businesses are generally regulated state-by-state, so it's difficult to give you general advice. I would suggest that you find a lawyer that practices law in that state and who specializes in banking law; they can tell you what you need to comply with. If you do not know a lawyer like this, I suggest going to a lawyer you do know and asking for a recommendation.

When are the legalities surrounding exchanges like coinffeine, where two anonymous users exchange and coinffeine acts as the intermediary?

Those two users are breaking the law. Operating an unlicensed money service business is against the law, and people have been arrested for exchanging Bitcoins. (Also, if you operate an unlicensed MSB, you're automatically also committing a federal crime.)
Whether Coinffeine is also breaking the law is a very interesting question that I am totally unqualified to answer.


text:
Will your shares be lost if you restart p2pool before the payout?
Will your shares be lost if you restart p2pool before payout, or is there a way to change the pool setting without takng it down?
I'm not sure about the wallet address and I want to change it.

You can restart p2pool at any time without losing your shares, because your shares are recorded in p2pool's share chain and permanently associated with your payout address.
From the wiki:

Whenever a peer announces a new share found (new block in the P2Pool block chain), it is received by the other peers, and the other peers verify that this block contains payouts for all the previous miners who found a share (and announced it) that made it into the P2Pool share chain. This continues until some peer finds a block that has a difficulty that meets the Bitcoin network's difficulty target. This peer announces this block to the Bitcoin network and miners who have submitted shares for this block are paid in the generation transaction, proportionally to how many shares they have found in the last while.

Please note that this also means that you cannot change the payout address of the shares you've already found - you can only change the payout address for future shares. Additionally, this architecture means that you will be able to collect payouts from your previous shares without p2pool running at all!


text:
How do I make p2pool accessible from outside my network?
I want my pool to be accessible from the public, i have forwarded port 9332 and 9333 on both udp/tcp, and its still not possible, and the system firewall is open for that, for example i cant access the pool stats through http://external_WAN_IP:9332 but i haven't yet tested using a miner and connect it to the pool.
i have set up the pool according to the instructions here http://p2pool.in with the latest version 14.0

Two questions: 1) Is P2Pool listening on a non-local port? 2) Is the port open when you use a port checker?

the p2pool is listening on a local port, the port is open, i have checkedit several times.

Let me clarify: Is it listening on 127.0.0.1, or on an IP address accessible to your network?

its listening on 127.0.0.1, im running it on the same computer as the miners and bitcoin core

That's not going to work. It needs to listen on 0.0.0.0, or the IP address assigned to you by your DHCP server.

is there a command to specify the address, and how is it goin to work without it being connected to bitcoin core.


text:
Supposedly 'Satoshi' was found in Australia… is there any way to verify this?
So far I can't tell what's true about all this.  It also seems like it'd be easy for someone to claim to be the pseudonymous creator of Bitcoin.  I've only seen information about this from main stream sources.  Does anyone know anything beyond the current main-stream narrative?

Proof that (at least part of) the story doesn't check out:  https://www.reddit.com/r/Bitcoin/comments/3w027x/dr_craig_steven_wright_alleged_satoshi_by_wired/cxslii7

I read that his home and office were searched by the Australian Tax Office, where did you read that he was arrested?

If someone purporting to be 'Satoshi Nakamoto' wanted to prove it, he/she could do so by signing a message using one of the same signing keys that 'Satoshi Nakamoto' used to sign one of his early messages during the release of bitcoin.  Or, he/she could announce that they will make a bitcoin payment from an address believed to belong to 'Satoshi Nakamoto' to some other address, then actually do so.

AFAIK Satoshi never signed any message with his key.

There appears to be conflicting information about this.  See the following Reuters article (http://www.reuters.com/article/us-australia-bitcoin-stakes-idUSKBN0TS1FQ20151209), where it says, "...or signing a message with one of the encryption keys used in emails known to have been written by Nakamoto ...".  On the other hand, https://en.bitcoin.it/wiki/Satoshi_Nakamoto states that he has a PGP key which was never used.  Either way, he could confirm his identitiy, if he wanted to, by signing a message using his PGP key, whether that key was used previously or not.

AFAIK SN had a pgp key on one of his profiles, but never encrypted any of his correspondence. Not sure what Reuter's source would be as they don't elaborate that point in the linked article.

I'm literally just reading the Gizmodo piece as well. This piece is based off of a month long investigation where they've done some really good journalistic reporting. Highly recommended.

Bitcoin.SE. is not a place for discussion, but a question and answer site. Please use answers to address the question post. If you want to discuss Bitcoin, you may join us in [Chat] once you gain a little more reputation, or perhaps want to prefer other platforms.


text:
Can I install custom software on an Antminer S5?
It is possible to install custom software (another than cgminer) on Antminer hardware? For example on antminer s5?

Does this help? https://bitcointalk.org/index.php?topic=1452009.0

Should be possible. There was custom firmware available back in circa 2015/2016. Check out Bitcointalk forum for older posts on Antminer S5: https://bitcointalk.org/index.php?topic=1452009.0. But be aware that you could brick your miner.


text:
Avoiding Bitcoin Addresses Collisions
Since every Bitcoin wallet can link multiple public keys / Bitcoin addresses to a single person, is there a mechanism in Bitcoin network to avoid 2 persons having the same Bitcoin address? Or it is achieved only by the space of possible keys/addresses (2^256 | 2^160)?
Thanks!

I'm sorry, it is already answered there. My apologies.

authors: Павел Тарасенко


text:
Who is spamming the bitcoin cash mempool and why?
When looking at the last hours of bitcoin cash (BCH/BCC) transactions I saw a massive increase in low(or no)-fee transactions:

Usually the graph looks similar to the BTC case (see below), just without the backlog of unconfirmed transactions.

Is anything known who did this and why? Is it just to test out if BCH is able to support high transactions volume without problems (fortunately it seems so, with ~20k transactions per block) or does somebody have malicious intentions and is trying to stall the BCH network?
Have people done similar things with BTC in the past?
Stats are taken from this site:
https://core.jochen-hoenicke.de/queue/#8h

Do you have any sense of what these transactions look like?  It could be that some large organization has just realized that the current low-fee environment is an ideal time to consolidate small txouts, rotate private keys, or other sorts of non-critical transactions.

@amaclin gave me good hints in his answer. But I know nothing more about the origin or the initiator(s)

It is not too difficult to check the low-fee transactions in large blocks with block-explorer. Follow the link
https://blockchair.com/bitcoin-cash/transactions?q=block_id(479479)&s=id(asc)
and press Load more... link several times.
There are a lot of one-input-to-one-output dust transactions like https://blockchair.com/bitcoin-cash/transaction/2ad1135d02924336901d23179d41a74a800da4f2247cf9e66e4cdccf8656f10c
So, this looks like spam. Sorry, I do not have any more information about the creator(s) of these transactions and their goals. You should investigate yourself. Hope my links are useful

Thanks, this is already helpful. I will not investigate further, it just intrigued me what the intention could be. Indeed, likely spam

Could be the one miner trying to drive up transaction fees. They collect them all so why not.


text:
Where can I sell Amazon.com Gift Code for Bitcoins?
Where can I sell Amazon.com Gift Code for Bitcoins ? I want a list of services, not exchange sites/forums.

bitmit.net has quite a few gift cards already listed for sale, therefore with the right price you will be able to sell yours with no problem.

Thanks for the link @Serith, but I have already tried this site. No luck !

There is a banner saying that the website will shut down on Decemeber 20, 2013, although it appears that most functionality has already been disabled.

You can also use the #bitcoin-otc channel on IRC:

http://bitcoin-otc.com/


text:
How can i emulate two or more recipient address?
https://webbtc.com/scripts/multisig
Above site lists lots of multisig recipient addresses having
2 or more addresses like below bitcoin mainnet transaction.

getrawtransaction fe709089a2a2142b82f9f57745452eff0f5feb9d6e02a6ad87b8faf4750c8a16 true
{
"txid": "fe709089a2a2142b82f9f57745452eff0f5feb9d6e02a6ad87b8faf4750c8a16",
...
    "vin": [
      {
        ...
      },
      {
        ...
      }
    ],
"vout": [
      {
  "value": 0.00010000,
  "n": 0,
  "scriptPubKey": {
  ...
    "type": "multisig",
    "addresses": [
      "1FE1A8QAF1d9WyLR67h4bZD5Q8gMAHF8Aq",
      "17mKFkUqi8Q1zLqRjjQZgHWpE4yboBFjbM"
    ]
  }
},
{
  "value": 0.00000000,
  "n": 1,
...
}

],
    ...
  }

addmultisigaddress offers multisig address composed of below.

bitcoin-cli addmultisigaddress 2 '["2Mv4H342fBrP6aJWnSem3bstNGqmrsfJkWH", "2NA6BSeYvtaY6iRhx9ZRQdPdsAzHE6E7Kcz", "2N9sxVZHzJGCZGXLhEZ2hNQUXgWLxgHfjFQ"]'
{
"address": "2Mt69kBHVgAeyDcPSYtcuhDmwZGVcfgDBs6",
"redeemScript":
  "5221036e92f34d7cef7dd069d3cc41ac4f7aa5d08964a97fad73a9c736d0f62e086d662103a5cafce0576b6af5b963c8208ebbdf6474af31b9b5cbfce0791e3c6d4f6e8cd021029bd48294dede37c6689597ff8f33c3ad7b53eb604a1208da8dd39312825d32d653ae"
"scriptPubKey": "a9140940d70f73f5d7c3291aa5627b2c20ae46fd732387"
}

I created multisig address("2Mt69kBHVgAeyDcPSYtcuhDmwZGVcfgDBs6") above, and sent money to the address using createrawtransaction.
The expected result "vout.scriptPubKey.addresses" tag was

"addresses":

[
          "2Mv4H342fBrP6aJWnSem3bstNGqmrsfJkWH",
          "2NA6BSeYvtaY6iRhx9ZRQdPdsAzHE6E7Kcz",
         "2N9sxVZHzJGCZGXLhEZ2hNQUXgWLxgHfjFQ",
     ],

but the result was

"addresses": [
        "2Mt69kBHVgAeyDcPSYtcuhDmwZGVcfgDBs6"
     ],

see also example from Gavin: https://gist.githubusercontent.com/gavinandresen/3966071/raw/1f6cfa4208bc82ee5039876b4f065a705ce64df7/TwoOfThree.sh

fe709089a2a2142b82f9f57745452eff0f5feb9d6e02a6ad87b8faf4750c8a16 is not paying out to a P2SH multisig address. It is paying out to a bare multisig address.
With your commands, you are creating a multisig address wrapped inside a P2SH address. What you have is a HASH160(redeeemScript). What you want is just an output going to n <pub1> <pub2> .... m OP_CHECKMULTISIG.
Do note that bare multisigs are rarely used these days, and nodes may reject the transaction (although it is still valid if mined). You should be using a P2SH address.

thanks, the term "bare multisig" would be a hint to solve.

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


text:
State of transaction and UTXO
What I have learned is that state is an abstract thing and is maintained by the node locally and the state of the current blockchain can be reached by starting all the way from the genesis block and updating the state to the current state. So the state keeps adding utxos.
Does the state keep track of only the UTXOs which are unspent or the state keeps track of both the spent and the unspent utxos. What I think is ,they should be removed from the memory pool. Also what I think is that the memory pool is nothing else but the state of the blockchain.
Please clarify my confusions. Thanks

UTXO stands for Unspent Transaction Outputs. Thus, a node only keeps track of transaction outputs that are unspent. As soon as a transaction (even an unconfirmed one) consumes a UTXO, it is removed from the UTXO db (if the tx is dropped, it is added back).

What I think is ,they should be removed from the memory pool.

The mempool is a list of unconfirmed transactions consuming as-of-yet available UTXOs. UTXOs are not removed from the memory pool. There is a separate UTXO database

Also what I think is that the memory pool is nothing else but the state of the blockchain.

The state of the blockchain is the UTXO database. The mempool is essentially a list of proposed changes to the UTXO set, which can be mined and confirmed, which then results in an update to the state of the blockchain.

Hmm, I never realized that a mempool entry would remove a utxo pre-confirmation. Is that ‘standard’ across all software? I suppose that is done to mitigate against double spends?

I'm not sure about others, but it happens in Bitcoin Core at least. You will get a txn-mempool-conflict if you try to broadcast a double spend. I'm not actually sure if it updates the UTXO set immediately, but it might have an additional check against mempool txs to achieve the same result


text:
How exactly does SPV work?
Here is what I have so far:

A mobile connects to a node using rpc.
The mobile then asks the node, to give him a set of transactions for a set of public keys.
The node, then looks for any transactions that match the public keys given and returns it back to the mobile.

The mobile can setup a bloom filter, so that some of keys included are not his?
Also, when the node receives a request, it needs to scan the blockchain all over again, to get the transaction history?

A mobile connects to a node using rpc.

Nodes don't connect each other using RPC. RPC is for node owners, and usually has a long password.

The mobile then asks the node, to give him a set of transactions for a set of public keys.

Not exactly. First of all, block headers have a part that's named "Merkle root" that allows clients to check if a transaction was in the block. In theory, as described in the whitepaper, SPV nodes can keep block headers, and ask other nodes for Merkle proof of their transaction. In practice, it's more complicated. Currently 99% of the SPV nodes use BIP 37. Besides, better SPV methods such as BIP 157 and Neutrino are being researched.

Also, when the node receives a request, it needs to scan the blockchain all over again, to get the transaction history?

Nodes do need to scan the whole blockchain for a transaction if they don't know its block height, unless they use txindex=1, etc... If they do, accessing it is trivial.

If mobile/light clients do not use rpc, how is it possible for them to query nodes using commands like gettxout? Or other people to query nodes using gettxout?
Also, if I give the node the public key and not a transaction then it would need to scan the whole chain? Because light wallets give public keys to the full node and not transactions to my understanding

They don't use gettxout. Here's what they use. Furthermore, SPVs never hand out the public keys, that'd damage privacy.

Oh, I thought filteradd was a rpc command. If they do not hand out public keys, then when an spv has gone away for a while, he will download the headers once he is back and then what does he send to the node, to get the relevant information? I see data in filteradd, but what is the data? Thanks again for the help

Actually, my mistake. They do hand out public keys along with some fake public keys. (Only pre-Bip37 download-everything nodes don't share public keys, aka "pruned".) As described in the table below merkleblock, the nodes send [all transactions in those blocks]'s hashes. Filteradd tells the nodes which pubkeys the SPV is interested in. If the block didn't pass the bloom filter, the nodes can omit tx hashes and save data. May give some more details: https://bitcoin.stackexchange.com/a/11721/38618

Ahh alright, the table is very helpful. Thanks for the information


text:
How do I find a renamed wallet whose name I can't remember?
I bought BTC in 2011 and renamed my wallet.dat to something else that I cannot remember. How can I find my wallet file on my computer? I'm prepared to use the command line and scripting.

What operating system are you using?

I'm using Windows 7.

Place to start - use the linux "file" command, which will show the following for a bitcoin wallet (at least in the client I use)
wallet.dat: Berkeley DB (Btree, version 9, native byte-order)
So - you could run something like:
find / -type f exec file '{U}' \; | grep "Berkeley DB"
That would be a start!

This worked for me: find / -type f | xargs file | grep "Berkeley DB (Btree, version 9, native byte-order)"

My wallet file is on Windows 7.  I don't use Linux. :(

Well - you could install "cygwin" and execute the command there (it's more or less a linux environment for windows) - or you could figure out the header and paste it into the "content" part of the Windows search.
Or you could boot from a linux LiveCD / LiveUSB!

In Windows 7 download and install Altap Salamander 2.54 (Google for it)
It's file manager (you can use any other file manager as well)
Then press Ctrl and key F to bring search window
Then set all options exactly as in this screen: http://s21.postimg.org/5qdx5cb1j/search.png
In Containing field enter: name"1 (each wallet has this text inside) and then click: Find Now
It takes a while to search entire disc C:
To speed up the process You can setup also Advanced options - see this screen: http://s21.postimg.org/xzb01t1wn/advanced.png
(I presume that Your wallet size is from 30KB to 10MB. If not change second value)

Thanks for your comment.  I noticed your png file shows search results only ending in .dat.  I believe I renamed my wallet file something innocuous like config.sys.  In that scenario, will the Find function still find the wallet file, or does it depend on the extension ending in .dat?  Also, if I find it I WILL tip you, not sure why you edited that comment out. :) You'd deserve it.

Write a script (e.g. Perl, Python, Ruby... ) that opens every file on your computer and looks inside it to check the format.  I'm not sure what that format is exactly.  It may be as simple as a certain constant sequence of bytes at the beginning (a so-called "magic number").

How do I "check the format".  I can write scripts but I have no idea how to do those 3 words, "check the format".

First you have to find out what the wallet.dat format is... is there a "magic number" at the beginning that identifies it?  Many file formats have such a magic number.  If so, your script must open each file in binary reading mode and read the length of bytes that would be in the magic number and see if it matches the particular bytes for the wallet.dat magic number. You may be able to use PyWallet (https://en.bitcoin.it/wiki/Pywallet) as a helper from your script.  Or at least you could look at the source for Pywallet to see if there are any clues about the existence of a magic number.


text:
How to sign bitcoin transaction with 'bitcoind' and non-bitcoind-wallet private key?
I want to create and sign bitcoin transaction using only 'bitcoind' and 'bitcoin-cli'.
I can create a transaction using createrawtransaction RPC API, but signing it using 'signrawtransaction' fails.
UPDATE: I figured it out and answered myself below. Take care to have scriptPubKey correct and leave redeemScript empty for simple transactions.
The private key is not stored in bitcoind's built-in wallet. That is, private / public key pair was created by vanity utility (for example).
Setup

"from" address": 1AsJjnWg5QKBThM6mK9jZ8mmo6KUzDjRD (From_Addr_1As)
"to" address:    1Mu5S5fuztimKZizvYZjKwpYfM9ZFf7zmo (To_Addr_1Mu)
transaction that sent funds to From_Addr_1As: 4325a5db66cbc8e9ff6a585cd0e8a2288ea74f9b46d2972b93f63bbb7d09a23e (Prev_Tx_4325)
new transaction is New_Tx

Funding
The transaction (Prev_Tx_4325) sent 0.00187 BTC to From_Addr_1As:
https://blockchain.info/tx/4325a5db66cbc8e9ff6a585cd0e8a2288ea74f9b46d2972b93f63bbb7d09a23e - also seen in the address transaction view https://blockchain.info/address/1AsJjnWg5QKBThM6mK9jZ8mmo6KUzDjRD
I want to send 0.00186 BTC from From_Addr_1As to To_Addr_1Mu.
The 0.00001 BTC fee included.
Bash Shell: Create Raw Transaction (successful):
$ ./bitcoin-cli -rpcpassword=123456 createrawtransaction '[{"txid":"4325a5db66cbc8e9ff6a585cd0e8a2288ea74f9b46d2972b93f63bbb7d09a23e","vout":0}]' '{"1AsJjnWg5QKBThM6mK9jZ8mmo6KUzDjRD":0.00186}'
Command output:
01000000013ea2097dbb3bf6932b97d2469b4fa78e28a2e8d05c586affe9c8cb66dba525430000000000ffffffff0190d60200000000001976a91401ddbca1a39b60b54fb671297a4a20a7681e017188ac00000000
Bash Shell: Decode Raw Transaction (successful):
Pay attention: 'scriptSig' is empty!
$ ./bitcoin-cli -rpcpassword=123456 decoderawtransaction 01000000013ea2097dbb3bf6932b97d2469b4fa78e28a2e8d05c586affe9c8cb66dba525430000000000ffffffff0190d60200000000001976a91401ddbca1a39b60b54fb671297a4a20a7681e017188ac00000000
Command output:
{
    "txid" : "b1ff3da36a6d7c3aaaee41428a7e239baa6243e37d7e1db60ea022d9f994ec52",
    "version" : 1,
    "locktime" : 0,
    "vin" : [
        {
            "txid" : "4325a5db66cbc8e9ff6a585cd0e8a2288ea74f9b46d2972b93f63bbb7d09a23e",
            "vout" : 0,
            "scriptSig" : {
                "asm" : "",
                "hex" : ""
            },
            "sequence" : 4294967295
        }
    ],
    "vout" : [
        {
            "value" : 0.00186000,
            "n" : 0,
            "scriptPubKey" : {
                "asm" : "OP_DUP OP_HASH160 01ddbca1a39b60b54fb671297a4a20a7681e0171 OP_EQUALVERIFY OP_CHECKSIG",
                "hex" : "76a91401ddbca1a39b60b54fb671297a4a20a7681e017188ac",
                "reqSigs" : 1,
                "type" : "pubkeyhash",
                "addresses" : [
                    "1AsJjnWg5QKBThM6mK9jZ8mmo6KUzDjRD"
                ]
            }
        }
    ]
}

Bash Shell: Sign Raw Transaction (successful):
Pay attention:

scriptPubKey is copied from the Prev_Tx_4325
redeemScript is left empty string: ""

./bitcoin-cli -rpcpassword=123456 signrawtransaction "01000000013ea2097dbb3bf6932b97d2469b4fa78e28a2e8d05c586affe9c8cb66dba525430000000000ffffffff0190d60200000000001976a91401ddbca1a39b60b54fb671297a4a20a7681e017188ac00000000" '[{"txid":"4325a5db66cbc8e9ff6a585cd0e8a2288ea74f9b46d2972b93f63bbb7d09a23e","vout":0,"scriptPubKey":"76a91401ddbca1a39b60b54fb671297a4a20a7681e017188ac","redeemScript":""}]' '["5J34hLVaP9UAj4BcdbgYoPia93zzDfo8JhTzUN2tf8qqRiZqtjY"]' "ALL"
Command output:
{
    "hex" : "01000000013ea2097dbb3bf6932b97d2469b4fa78e28a2e8d05c586affe9c8cb66dba52543000000008a47304402206f40f4eb8c6cab7c6dd45a132d437e736a6a0dddfb2b78b10e6efbcaf61592f602200d329a57d7a0c969cc349f41852da4ba1a3bc2245e656bdd41780455b97bf84a014104aa49fbe6608076318ff09171e3c2b4a2effa52d53a417371140642996693ae3ac53ce300fff7fef650d0a2418b087a237aa6838eed3bdfad0ec0069df7209f4affffffff0190d60200000000001976a91401ddbca1a39b60b54fb671297a4a20a7681e017188ac00000000",
    "complete" : true
}
Bash Shell: Decode signed transaction (successful):
$ ./bitcoin-cli -rpcpassword=123456 decoderawtransaction 01000000013ea2097dbb3bf6932b97d2469b4fa78e28a2e8d05c586affe9c8cb66dba52543000000008a47304402206f40f4eb8c6cab7c6dd45a132d437e736a6a0dddfb2b78b10e6efbcaf61592f602200d329a57d7a0c969cc349f41852da4ba1a3bc2245e656bdd41780455b97bf84a014104aa49fbe6608076318ff09171e3c2b4a2effa52d53a417371140642996693ae3ac53ce300fff7fef650d0a2418b087a237aa6838eed3bdfad0ec0069df7209f4affffffff0190d60200000000001976a91401ddbca1a39b60b54fb671297a4a20a7681e017188ac00000000
Command output:
{
    "txid" : "267550934eb413a623459464d88cb14ff47fa192df720cf8485b590812db8fba",
    "version" : 1,
    "locktime" : 0,
    "vin" : [
        {
            "txid" : "4325a5db66cbc8e9ff6a585cd0e8a2288ea74f9b46d2972b93f63bbb7d09a23e",
            "vout" : 0,
            "scriptSig" : {
                "asm" : "304402206f40f4eb8c6cab7c6dd45a132d437e736a6a0dddfb2b78b10e6efbcaf61592f602200d329a57d7a0c969cc349f41852da4ba1a3bc2245e656bdd41780455b97bf84a01 04aa49fbe6608076318ff09171e3c2b4a2effa52d53a417371140642996693ae3ac53ce300fff7fef650d0a2418b087a237aa6838eed3bdfad0ec0069df7209f4a",
                "hex" : "47304402206f40f4eb8c6cab7c6dd45a132d437e736a6a0dddfb2b78b10e6efbcaf61592f602200d329a57d7a0c969cc349f41852da4ba1a3bc2245e656bdd41780455b97bf84a014104aa49fbe6608076318ff09171e3c2b4a2effa52d53a417371140642996693ae3ac53ce300fff7fef650d0a2418b087a237aa6838eed3bdfad0ec0069df7209f4a"
            },
            "sequence" : 4294967295
        }
    ],
    "vout" : [
        {
            "value" : 0.00186000,
            "n" : 0,
            "scriptPubKey" : {
                "asm" : "OP_DUP OP_HASH160 01ddbca1a39b60b54fb671297a4a20a7681e0171 OP_EQUALVERIFY OP_CHECKSIG",
                "hex" : "76a91401ddbca1a39b60b54fb671297a4a20a7681e017188ac",
                "reqSigs" : 1,
                "type" : "pubkeyhash",
                "addresses" : [
                    "1AsJjnWg5QKBThM6mK9jZ8mmo6KUzDjRD"
                ]
            }
        }
    ]
}
Bash Shell: Send Raw Transaction (successful):
./bitcoin-cli -rpcpassword=123456 sendrawtransaction 01000000013ea2097dbb3bf6932b97d2469b4fa78e28a2e8d05c586affe9c8cb66dba52543000000008a47304402206f40f4eb8c6cab7c6dd45a132d437e736a6a0dddfb2b78b10e6efbcaf61592f602200d329a57d7a0c969cc349f41852da4ba1a3bc2245e656bdd41780455b97bf84a014104aa49fbe6608076318ff09171e3c2b4a2effa52d53a417371140642996693ae3ac53ce300fff7fef650d0a2418b087a237aa6838eed3bdfad0ec0069df7209f4affffffff0190d60200000000001976a91401ddbca1a39b60b54fb671297a4a20a7681e017188ac00000000
267550934eb413a623459464d88cb14ff47fa192df720cf8485b590812db8fba
Command output:
No output on command success!
Conclusion  :-)
By explaining and formulating the question I found a solution. It is really worth asking on StackExchange, and I got to the answer by myself!
UPDATE: Thanks for comments - I answered myself below. Ensure scriptPubKey is correct and leave redeemScript empty for simple transactions.

What is the question?

Ask the question and then answer it by yourself instead of putting the question and the answer in the "question"

As @JanMoritzLindemann already suggested, your post doesn't fit our format. Please separate it into a question and an answer. You can find a visual explanation of the Stackexchange format in our [About].

Answering my own question
Two things basically got into way of creating and signing a raw bitcoin transaction using 'bitcoind' program:

Leaving 'redeemScript' to be the empty string

It has to be empty for simple bitcoin transaction!

Using single-quote mark (') to make the bitcoin RPC call looking nice and not messy.

That's all.


text:
How is the Ripple cilent bootstrapped?
When the Ripple client starts, it connects to some initial servers.
How does its find the initial list of servers it should connect to?
Is the initial list hardcoded?

The client is configured with the server or servers it should connect to in a configuration stored on the web server that serves the client and retrieved by the client using HTTP. In the current version of the client, this can be changed from the Options screen. I believe this change is currently not saved but there are plans to store a list of servers in the wallet.

Something definitely gets stored locally these days. See:link


text:
How to verify Ripple is working?
isup.me is a cool page that checks whether another page is "down for everyone, or just me". Today I found my access to https://ripple.com/client/ and https://ripple.com/graph/ didn't work at all, due to "network errors".
Ripple is p2p, so theoretically it should always be up ... however it's a young project so there might be bugs, and the server code isn't yet open sourced. What's a good way to verify the Ripple network is up, or rather "is Ripple down for everyone, or just me"?

There really isn't one yet. Currently there is only one access point into the Ripple system open to the public and there's no system monitoring on it that has public access.

There is actually a way:

Download this github repo as a zip arhive https://github.com/rippleFoundation/network-viewer
Open in your local chrome

I want a 3rd party service that verifies the problem isn't related to my local setup. How would downloading the network viewer help with this?

Oh, I misunderstood your question, you just wanted some kind of "show me ripple p2p status" tool, my answer had to do with how to explore the existing ledger.


text:
How is the security of Mastercoin different than that of Bitcoin?
Mastercoin is based on Bitcoin, and has a very similar security model. However various parameters make the security different (some better, some maybe worse).
How exactly do they differ, security wise?

Mastercoin Founder here.
Mastercoin inherits its security model from bitcoin, with some minor changes. To undo a Mastercoin transaction, you'd have to undo the bitcoin transactions containing the Mastercoin transaction data, so we have almost as much security as bitcoin itself. I say "almost" because the order of Mastercoin transactions in a bitcoin block matters, and a block-chain reorg can affect that ordering, because bitcoin miners don't pre-validate mastercoin transactions before including them in a block (bitcoin transactions must be valid before they will be included by a miner). Consequently, in the event of a blockchain reordering event, a Mastercoin transaction which was previously invalid can become valid due to reordering.
The end result is that a Mastercoin transaction with 3 confirmations is less secure than a bitcoin transaction with 3 confirmations, but more secure than a bitcoin transaction with 2 confirmations. I typically say that Mastercoin transactions are "half a confirmation less secure" than bitcoin transactions against double-spend attacks.
In the future, Mastercoin will be MORE secure than bitcoin - specifically against theft and loss. Mastercoin features include the ability to put restrictions on a "savings" address such as temporary reversibility and spending limits. These limits directly prevent theft, and indirectly prevent loss (since it is safer to have more backups of a wallet which can't be stolen).

Mastercoin isn't based on bitcoin in the same sense that other alt-coins are based on bitcoin. Mastercoin adds smart contracts/property to the original Bitcoin blockchain. Mastercoin doesn't introduce its own blockchain. And thus Mastercoin is no simple fork with different parameters (like so many other alt-coins).
Because Mastercoin lives within the blockchain of Bitcoin it can't really add any extra security. A compromised bitcoin is a compromised master coin.
The extra rules which Mastercoin implements can be viewed as extra security. But these are rules which could also be implemented in Bitcoin itself. And its the question if that actually works.

How exactly do they differ, security wise?

Who knows really.
There's no guidelines, no proper protocol specifications, no sample code. Depending on the implementation you can have 4 different recommended services showing multiple conflicting balances for an address, which is clearly a risk if anybody wanted to use the terrible system for anything serious. Even the creator "dacoinminister" seems to have very little except for a vague notion of how things will work, and just dismisses questions like this with hand-waving and "it'll work itself out".
In short, nobody can tell if you if it is "secure", because "it" really doesn't have a definition. Nobody asks about security because it's dump-and-dump amateur hour.


text:
Getting error when starting bitcoind in regtest mode
I tried starting bitcoind in regtest mode but got the following error.
Command :    bitcoind  -regtest  -daemon
Output :

Bitcoin server starting
Error: Invalid amount for -paytxfee=: '0.00' (must be at least 0.00001000 BTC/kB)

@George Thanks. I changed paytxfee=0.00001000 in bitcoin.conf file and now it works.


text:
How to make genesis block transaction spendable?
I read this question Why can’t the genesis block coinbase be spent? . It says because of some quirk (the genesis block coinbase transaction is not added to the global transaction database) genesis block coinbase transaction cannot be spent.
How to add this transaction to the global transaction database ? What changes are needed to make this transaction spendable ?

It would be trivially easy to make the change.  Just a couple lines of code to add the include the genesis block tx in the utxo.
Understand however the hard part is that would create a hard fork.  Unless the change became part of a majority of nodes it would violate the consensus rules. If that output was ever spent any node running older code would be split from any node running newer code as some nodes would see the new txn as valid and some as invalid.  This is true for any hard fork scenario.  For this reason it is unlikely that hard forks for minor or trivially reasons will ever happen.

Yes it would create a hard fork. I am trying to find where in the source code I have to do the changes. Which function do I have to modify or which function to call ?

The bitcoin source code has a special case in it to exclude connecting the transactions to the view. It can be found here. Presumably you would just remove this restriction to be able to spend genesis coins. It would also require wiping your datadir, and restarting your node to re-download the blockchain.
If you are working with the real bitcoin network (which I suspect you are not), you won't want to do this. Even though it seems unlikely that Satoshi would ever return and try to spend these coins, such action would lead to your node diverging from the rest of the network

I removed the piece of code(https://github.com/bitcoin/bitcoin/blob/v0.10.2/src/main.cpp#L1664-L1667) and wiped datadir. Then tried testing it in regtest mode bitcoind -regtest -daemon, but the daemon is not starting. It prints Bitcoin Server is Starting but when I use bitcoin-cli -regtest -getbalance it prints error:couldn't connect to server .


text:
To open “MultiBit” you need to install the legacy Java SE 6 runtime
I am unable to resolve this. I have updated Java but it appears to require a previous version. Thank you.

You should send this to the Multibit team https://multibit.org/

Are you using OS X?

We need a lot more details. We can't help without knowing OS (Win, Mac?), Multibit version, java version etc etc

I know for a fact Java 6 is not needed. I run it with Java 8 without any problem. Do you have any error message or something that might help us find the real problem?

if you are using OS X, you can just double click
/Applications/MultiBit.app/Contents/Resources/Java/multibit-exe.jar
works on OS X 10.10.1, Java 7 Update 71.
guess they need some minor adjust for less strict JVM/JRE version check...

No it works with the latest version, you need to uninstall java completely and install again.


text:
How does merged mining work on a technical level?
In bitcoin, miners hash the header twice with the SHA256 function. This header consists of the fields listed below, as described by this question.

version
previousHashBlock
merkleRoot
time
difficulty
nonce

This header data only applies to one chain. I don't get how we can mine on two different chains, as their merkleRoot and their previousHashBlock are totally different? We obviously can't have the same transactions on both merkle trees since we are talking about two different cryptocurrency chains with different transactions. So how do some pools manage to do that?
The question "How does merged mining work?" explains the broad concept of merged mining, but I'm looking for specific technical details. A byte-by-byte description of how merged mining works would be very helpful.

There's actually a very good detailed specification on the bitcoin.it site.
Essentially, what it comes down to is that there's some data inserted into the coinbase transaction of the parent chain. So, assuming, for example, that Bitcoin is the parent chain and Namecoin the child chain, anyone merge-mining would be using a coinbase transaction in Bitcoin that has a particular script that looks like this:

4 bytes magic (0xfa, 0xbe)
32 bytes hash of auxPOW header
4 bytes merkle size
4 bytes merkle nonce

For now, note that the 32 byte hash of the auxPOW header is the important thing. We'll get to explaining what that is later.
The actual block submitted to Namecoin is actually slightly different. It has a few extra fields like:

Bitcoin's coinbase txn
merkle branch (essentially an SPV proof) of the coinbase txn being in Bitcoin's block
Namecoin's previous block hash

This block is called the AuxPOW block and is actually what gets submitted to the Namecoin block chain. Now, what's to stop anyone finding a block on Bitcoin and submitting the block to Namecoin by adding this extra data? This is where the hash of the AuxPOW in the coinbase transaction of Bitcoin is important.
The AuxPOW hash can be computed ahead of time and must be included in the coinbase transaction of Bitcoin in order for Namecoin to accept it. Thus, anyone merge-mining must be aware of the Namecoin blockchain as they're looking for Bitcoin blocks. Otherwise, Namecoin doesn't accept blocks that just have data added afterwards. The Proof-of-work on Bitcoin already has previous Namecoin block information in the coinbase transaction, tying the two chains together.
merkle size and merkle nonce are 1 and 0 if you're merge mining only 1 other chain. These two variables were set up so that you could merge-mine more than 1 other child blockchain, but it's actually broken. There's a workaround described here.

It takes 44 bytes of data of the coinbase' input script, which is limited to 100 bytes. So at most you can only merged mine 2 coins with Bitcoin? OP_RETUN could be used for more, theoretically, even though standardness currently limits it to 40 bytes (Miners can disregard this fact in their coinbase transaction).

Could you explain in more detail what the merkle size and merkle nonce are, and why they have to be included in the coinbase's scriptSig?

I've added another paragraph to address both concerns, essentially. It doesn't help much due to the fact that it's actually a bit broken.

Also there are other coins being merged mined at the moment as child's of namecoin.


text:
Problems with deterministic ECDSA based on RFC6979 in Bitcoin
Generating random number k in elliptic curve is crucial and in any transactions signature in Bitcoin, random number k is required to compute a point k*G. If this k is chosen not randomly, it instantly leaks the private key.
Therefore, they came up with an idea of deterministic generation of ECDSA which is described in RFC6979. Basically they concatenate the private key with the hashed message and use an HMAC function and generate a pseudo random k.
This method seems simple and easy.

Does it introduce any overhead?
If yes, is this overhead negligible?

Or generally is there any inefficiencies or problem with this method and why do we still see non-deterministic implementation of ECDSA?

Not any serious efficiency concerns. Signing is done fairly infrequently for any particular client (only a few signatures per transaction usually). While possible that the signing might take slightly longer to generate the k value, it would not be noticeable, especially considering how infrequently it is used by any one particular client. It's the verification of all the signatures that is the CPU bottleneck for block verification in bitcoin, because all full nodes have to verify the signatures of all the transactions on the network, and this takes the same time regardless of how the k parameter was chosen.
Gregory Maxwell made a comment about the use of deterministic k values here:

The primary arguments in most spaces against derandomizing DSA are
  FIPS conformance (irrelevant for us) and reasonable concerns about the
  risks of using a (less) reviewed cryptographic construct. With
  widespread motion towards derandomized DSA this latter concern is less
  of an issue.

The new libsecp256k1 library by Pieter Wuille actually uses deterministic generation of k.
Also note that one of the key benefits of using this construction is that you need not worry about a weakness in your PRNG being exploited in the signing process. For example, signing different pieces of data with the same k value instantly leaks your private key. A similar attack can also be exploited if the PRNG is weak enough to determine the relationship between different k values used when signing the same piece of data. Since the k is deterministically generated from the data you are signing (and the private key), these concerns about the PRNG are no longer as relevant, as you will always produce the same signature for the same piece of data. This also makes writing ECDSA unit tests easier.

As you mentioned the verification process is the same and adding couple of extra HMAC computation to the client side doesn't really affect the signature process.

Signing the same data twice with different 'k' values is safe.

@adaclin Only if an attacker cannot determine the relation between the two k values used. If for example one k is known to be equal to the other plus one, it instantly leaks your private key.

@PieterWuille Thanks, I have updated my answer. I had confused the different-ks-same-data attack with the different-data-same-ks attack mentioned here.

@abeikverdi Actually, generating a nonce using RFC6979 with SHA256 requires 22 invocations of the SHA256 compression function, which takes in the order of 10% of the whole signing time.

@PieterWuille Can you illuminate me? Dont we just concatenate the private key and the hashed message as the HMAC nonce?

@abeikverdi Read RFC6979 and try to implement it, you'll see.

@PieterWuille I have already read RFC6979. Never tried to implement that though. Is this 10% overhead time that you are referring to, you personal experience? or its scientific?

I benchmarked it. Can't get more scientific than that.

@StephenM347 Wouldn't this RFC 6979 generates the same k twice? HMAC_DBGA(private key d || H(m)) generates the same k for the same hashed message since the private key is constant. Doesn't it? Isn't that a problem?

@abeikverdi, Not really, that's exactly why it's useful is because it produces the same signature for the same data. It only uses the same k twice for the same message. It's only when you sign different data with the same k value that it leaks your private key. Using the same k for the same data doesn't give any new information.

@StephenM347 the data that you are referring which is the hashed message is the hash of transaction?

@abeikverdi, essentially, yes, the data being signed is a hash of the transaction which has been cleared of all inputs (you don't sign other signatures). There's one more little nuance, that the previous scriptPubKey of the output being spent is inserted in the scriptSig before double SHA256 hashing.

@StephenM347 Thanks a lot! I totally got it now!


text:
My transaction hasn't confirmed and it's been 9 days
Transaction was initiated May 16, fee was 0.0001 and it's 226 bytes. It's 9 days later and it hasn't confirmed.

What is going on?
How do I get my BTC back?

EDIT:
Sorry, since I posted as guest it seems to not let me respond/edit as original poster. Here's the blockchain info: https://blockchain.info/tx-index/836b863d4099493d5599ab20024b10d6087f0ea662ffd2d1feea54acbd4a1195
It says May 20th, but I did send it May 16th

Your fee is extremely low. Blockchain is currently completely jammed up. Could you post transaction details so that any miners here can help?


text:
bitcoind is not working
 curl --user ryunishida:password --data-binary '{"jsonrpc": "1.0",
 "id":"curltest", "method": "getinfo", "params": [] }' -H 'content-
 type:
  text/plain;' http://127.0.0.1:18332/ -w '%{http_code}\n'

bitcoin/bitcoin.conf below
 rpcuser=ryunishida
 rpcpassword=password

 HOST=localhost
 server=1
 txindex=1
 rpcport=18332
 testnet=3

then i get 401

You mean .bitcoin/bitcoin.conf, right?

Yes I meant that


text:
Clarification of BIP32 hierarchical deterministic multisig scripts
As everyone is aware, I'm a huge proponent of Vitalik Buterin's pybitcointools Python 2.7/3.x library. I am having a some trouble understanding the BIP32 concepts, which are coded in the deterministic/composite modules.
In particular, this code:
# BIP32 hierarchical deterministic multisig script
def bip32_hdm_script(*args):
    if len(args) == 3:
        keys, req, path = args
    else:
        i, keys, path = 0, [], []
        while len(args[i]) > 40:
            keys.append(args[i])
            i += 1
        req = int(args[i])
        path = map(int, args[i+1:])
    pubs = sorted(map(lambda x: bip32_descend(x, path), keys))  #
    return mk_multisig_script(pubs, req)    # (req = required sigs) ... returns redeemScript hex

# BIP32 hierarchical deterministic multisig address
def bip32_hdm_addr(*args):
    return scriptaddr(bip32_hdm_script(*args))   # returns P2SH address

I've had issues signing 2-of-2 P2SH/HD Txs with Electrum which I could only successfully sign using createrawtransaction \ signrawtransaction in Bitcoin-CLI.
How exactly is P2SH in combination with HD wallets implemented (preferably in terms of the aforementioned Python code)?

Are you having trouble with creating these outputs, or signing a transaction spending them once you've created them?

@NickODell I'd like to be able to sign using the Python code. I don't want to confuse things too much, but Electrum 2.0.4 partially signs, returning this JSON data: https://gist.github.com/d6397e62bdb78f905cfa ... It makes no sense because it's substituted the extended public key in the script. (NB the data is safe to share, no worries about stolen keys or whatever)

I'd be also interested to know how multisig can be implemented with the HD wallet. Does it automatically generates multisig addresses?

OK, I got it working with pybitcointools.
The command, bip32_hdm_script, as one can infer, returns hex of the P2SH redeemscript using the specified BIP32 master public/private keys (which is no different to using mk_multisig_script(pubkey1 pubkey2 pubkey3 2) for a 2-of-3 P2SH). Likewise, bip32_hdm_addr returns the P2SH address one gets from the redeemscript.
The catch is we're dealing with paths and such, and the function has issues with object types.
Let's use master private keys seeded with 0,1 and 2, respectively...
b32mprivkeys = [ bip32_master_key(str(x)) for x in range(3)]
gives ['xprv9s21ZrQH143K2FsoUgfptxnkXbTjWSyu7oPKz2BtJm5yWC8pZMtxbx66FhZoY2e6Fwz2rZ4zPZrgpNJHRd68RtQNcFFVbwGf7Vapo4spoqL',
 'xprv9s21ZrQH143K2r9LvVthYjmsCLwZGpAc4uAAeovjhf7vaAbiunLgRdp8DAo4fSGUMuYQzzGfNGkdsR9xq6vcaKQSTa2VQx7o31N3kxcZi9k',
 'xprv9s21ZrQH143K2AV64RkNhLQEHTphnaGZqrGBhXTw9gBTMfvDAPiKFWpkBmt9otxA2X14bRS6mPdxohX4QCP3PMi8TG7KvCriGcsQHwDHVfT']
Signing with master private keys won't work directly, let's get the master pubkeys:
b32mpubs = map(bip32_privtopub, b32mprivs)
Now, in this example, we want to descend to path 0/1, in a 2-of-3 multisig. This is represented by an int, 2, and a tuple (only!) of the path, so (0, 1).
redeemscript = bip32_hdm_script(b32mpubss, 2, (0, 1)) = 5221029057ffd5c48f95c46c5e12b837cd0e4a7538dfa8ab9eb3479593724a6109ffb4210316776496822873767c6a91efe85a55871fc4a944c1d1ccab52cebd386cef29d4210318ae5429f67dbf61f54ae947f38637f4bffa1e252922b431eeed397cac49a22953ae
Now, we use bip32_hdm_addr to get the P2SH address.
>>> bip32_hdm_addr(redeemscript)
5221029057ffd5c48f95c46c5e12b837cd0e4a7538dfa8ab9eb3479593724a6109ffb4210316776496822873767c6a91efe85a55871fc4a944c1d1ccab52cebd386cef29d4210318ae5429f67dbf61f54ae947f38637f4bffa1e252922b431eeed397cac49a22953ae
Note, FWIW,
>>> bip32_hdm_addr(redeemscript) == scriptaddr(redeemscript)
     True

AGAIN: Do not try signing with master private keys using bip32_hdm_script, lest you return a redeemscript, which when deserialised, gives:
slice(            # we want the privkeys only
       deserialize_script(bip32_hdm_script(b32mprivkeys, 2, (0, 1))),
       1, 4)
See how the keys from the redeemscript are 33 bytes long? And don't start with 02/03/04? That'll make an unusable P2SH address, so beware this pitfall!


text:
Why does BIP44 use non-hardened paths at all?
BIP44 uses hardening/private derivation on most levels:
m / purpose' / coin_type' / account' / change / address_index

but not on the change and address_index level. First of all, what does hardening achieve and secondly, what would be the disadvantage of always hardening other than having just half of 2³² paths at that level?
As far as I understood, non-hardened paths allow at the presence of just one simple private key, to learn the xpriv key of the address and if that is not hardened, also the next higher xpriv key all the way up to the first hardened path. Is that so and if yes, what advantage would it have, other than providing 2 billion addresses more in that account's external and change path assuming that the overflow into hardened address spaces were allowed?
A little code to see if/what I got right:
    var wallet = HDPrivateKey()
    var hardened = wallet.derive(4, true)
    var nonHardened = hardened.derive(4, false)

    console.log(hardened.publicKey.toAddress().toString())
    // the payee gets this anyway
    console.log(hardened.publicKey.toString())
    // once I spend from my address, I have to reveal this. It's probably secure to
    // re-use the address but better not to.
    console.log(hardened.privateKey.toString())
    // at this point, you can spend funds that are received to above address and
    // only that
    console.log(hardened.xpubkey)
    // you now know all my addresses I could derive from hardened. Do you know any
    // private keys except for the one I explicitly shared a line before?
    console.log(hardened.xprivkey)
    // now you can spend from all the addresses derivable from hardened but learn
    // nothing else about wallet.

    console.log(nonHardened.publicKey.toAddress().toString())
    console.log(nonHardened.publicKey.toString())
    console.log(nonHardened.privateKey.toString())
    console.log(nonHardened.xpubkey)
    // in difference to the hardened case, you would now learn about nonHardened but
    // also (once again) about hardened? What could you actually learn?
    console.log(nonHardened.xprivkey)
    // would this line leak any information that wasn't already leaked in the last
    // block?

The output:
    1c6dKRqvYPiCQx2R3u75pxGfy15g7jfU4
    0342619d3209b6859f4d88e3b1deaa1acee734c94d625b7d59b286b6842c90bd60
    4c461799315979063858208f6c3e8b33f29ceb10c42389690cd0a20427715845
    xpub68GCDysH8nE2Nuodq1ncV4jYiWvajzZyjVr6Pt8N46QAKC3CPxjj8G6AcE7sdvGypzXZFRRHYjRokhTty6LC8MErRifGiJFeTbTBYL9QfTg
    xprv9uGqpULPJQfjARjAizFc7vnpAV66LXr8NGvVbVikVksBSPi3rRRUaTmgkwDii6TFzWWFsch7Qc2v6eM1ZcJAJLv8ybvw7YY4qwLwvfFJoAp

    1NsxMLRhXasbHaskKVQK4qiJpBZgjTs3Aq
    026653baf78fb78cfb9845faa43080dfc452991422edc67f5ba085d02786364670
    afdb89aaf2f02987dfc47cc655fb4e1fb5cdd545af44875b4176805dc8f60852
    xpub69pTp8pV8Fcmkf3HuiWnzGE42MJcMrTtegoZaLApLUSvhugH6YNKgTtVfk2asMNZWKynCpFoCGePbHLfwJqsLtPskSv5cPF6j1FqmdaNCrE
    xprv9vq7QdHbHt4UYAxpogynd8HKUKU7xPk3HTsxmwmCn8uwq7M8Z1458fa1pVZCfWYWUWMG7p7b99NzJnSwZAnQR6EmN4awbcKZrfdrcmXAXqy

Why does BIP44 use non-hardened paths at all?

Imagine you have a website where you want to sell things. You need the website to be able to generate addresses, but you don't want it to be able to spend from them.
Well, you can give the website an account-level extended public key, and it can generate the non-hardened addresses you need from that. You wouldn't be able to create hardened addresses; you'd need the account private key to make new hardened addresses.
// you now know all my addresses I could derive from hardened. Do you know any
// private keys except for the one I explicitly shared a line before?

No. I know a private key, but I can't work out the parent key or any siblings.
// in difference to the hardened case, you would now learn about nonHardened but
// also (once again) about hardened? What could you actually learn?

Even though this key isn't hardened, I don't know the chain code of the parent key, so I can't compromise sibling keys or even associate that key with any of its siblings.
// would this line leak any information that wasn't already leaked in the last
// block?

Nope. However, if you also exposed
wallet.derive("m").xpubkey

then I'd have enough information to compromise your wallet.

The account level in BIP44 is hardened, yet it allows to derive the external and change addresses.

@Giszmo, yes, but its children are not hardened.

I can perfectly derive from hardened xpriv and xpub keys. hardened.derive(1, true).derive(1, true).xprivkey is  "xprv9zTLKFNn1CmW8oB3s8L1B4Bvn9E4nLmg2juMQv2HwbhhQhufDivMWcNSiio59CiNMXkUCBS4Npi9KAtefwB4KUNkrTkprbECsMLg3yEvJM8".

@Giszmo Can you generate a child public key from a hardened public key?

something like HDPrivateKey().derive(1,true).hdPublicKey.publicKey.toAddress().toString()? Spits out an address as I would have expected.

@Giszmo No, a child public key.

Extended chat log.

Ok so xpriv (hardened or not) can be derived to any hardened or not, private or public sub key while xpub (hardened or not) can only be derived to the non-hardened public sub keys.


text:
Why should one invest in an ICO?
When you invest in an ICO, you get a bunch of tokens in return. From what I understand, these tokens don't generate any dividends, hence they are essentially worthless. Why should one buy them?
Let's compare with buying stocks in a company: The reason company shares have any value is because of dividends (or other profit sharing methods). If a company promises to never distribute any profit to its shareholders, the stock is worth exactly zero. No one would buy them.
I'm trying to make sense of this and I'm certainly missing something here.

"The reason company shares have any value is because of dividends." well no, as not all stock generates dividends.

"Notable companies that don't pay dividends include Berkshire Hathaway (BRK.B), Facebook (FB), Alphabet (GOOG), Amazon (AMZN), and Tesla (TSLA)."
Why do some companies pay a dividend, while other companies do not?

@weston Lots of stocks don't give dividends today, but the prospect of future profit distribution is why stocks have any value. Otherwise, there would be no point of buying stocks (apart from curiosity and stuff like voting rights etc). If the company never plans to issue a dividend, it's just a game of the greater fool. Unfortunately far too many people have bought into the game.

So you are saying that people are only are happy to invest today, tying up thousands of dollars in these companies, in the vague hope that they might get, maybe 5%, return in future years? If that's true, why wouldn't those same people just invest in companies that already are paying dividends today? Because they hope the company will grow and their return is from later investors willing to pay more for the same stake. Investors always don't want dividends, they have to pay income tax on it, and like I said, the % is low in investment terms.

One buys a no-dividends company today when you think it will (a) start doing it soon, (b) are in growth and eventually will do it, (c) will close down and liquidate assets to shareholders or (d) is bought out. If you do (b) then you're betting profits will increase in the future. If you weather it, you'll not get a measly 5%. This is why stocks prices increases. Btw, this is the reason companies end up with 5% ('ish). If a company would give you 50%, then people would buy shares like crazy until the price goes up so the net return is 5% or whatever.

(continued) The other cases (a, c, d), are easier to understand: you get your money today.Ask around if you don't believe it. That's all I have to say about this.

So you don't believe companies can have value without giving dividends now or in future. And if a company vowed to never give dividends its stock would collapse to zero?

I know this will shatter your simple abcd view of the stock market but you should read http://www.businessinsider.com/warren-buffett-on-dividends-2013-3 where Warren Buffet explains why his company will never pay dividends. So the price of that share must be zero right? Haha

Then we're in the case of (c) or (d). Eventually. Which both means dividends in the sense of giving profits back to the shareholders based on number of shares they own.

https://en.wikipedia.org/wiki/Berkshire_Hathaway 230 Billion revenue, assets worth 600 Billion. That company is neither being bought out or liquidated anytime soon! Can't you see that simply owning part of a company is investment enough? You don't need dividend payouts as well. And about (c) liquidation, usually a company is in massive debt and that point and the shareholders are very last on the list of people to get a slice of any recouped funds. No one buys shares with the hope a company will be liquidated.

Look, this is all basic economics. I tried explaining it to you, but failed. By all means, invest your money as you see fit.

You're the person asking questions, I tried explaining to you, I even gave you perfectly good examples and sources, but you stubbornly ignored them. Bottom line, companies have a value without dividends. But none of that stock market stuff even matters, ICOs are at best unregulated, and usually just scams.

I never asked if buying hypothetical stocks with no returns are worthless or not (because it's an economic fact). For the record, I bothered to check this with a guy working in the Nordic stock exchange and another who's a successful angel investor (who is also a huge Buffet fan btw). Both with 15+ professional years. Both corroborate this. Again, invest your money as you see fit.

I'm voting to close this question as off-topic because it's asking for investment advice.

From a investors perspective, : You buy them because you speculate that the tokens will go up in value over time, as the company behind it develops the usecase of said "Product/Token".
Or, because they suspect that the Token/Coin/Blockchain will get adapted by alot of people/users, and used as a Currency.
For example, Ethereum.
It was first launched as an ICO, and collected ~$17.3M USD (24000 bitcoin at the time.).
Almost nothing worked when it was first launched, but the coin/token developed over time, adding more features such as the  smart contracts, all the apps build on Ethereum, and resolving many other issues.
Thus it became more popular, and was used more, and value went up.
(Ethereum currently has a ROI of ~85714.2857143%, if you kept holding since the ICO.)
This is why ICO's are hyped up so much currently, which is both bad and good.
There's token sales for anything you can think of, "decentralized this, decentralized that", you have to ask yourself how legit that is, and if it is worth investing your time and money in, because afterall, it is still a huge risk.

Ok, that makes more sense. Would you care to elaborate in your answer? Maybe give an example?

Done. Hope this eleborates it a bit more.

Do crypto-coins themselves (bitcoin, litecoin, ethereum and 100500 other shitcoins) generate dividends? :))))))))
the answer is: ponzi pyramid scheme. point.

Well, the perceived value of BTC is that it could possibly be useful in the future for buying stuff (ie replacing fiat). So I see the potential for value here at least.

so your answer is "ponzi pyramid scheme. point." Those are not even sentences. Are you saying that bitcoin/eth should be grouped in with ICOs?

of course. bitcoin/altcoins/ico/tokens/etc - are the similar things. you buy something and should wait for the next buyer to sell him your "digits" for higher price. people involved in pyramid are very angry listening this, because they are afraid about their "inversments". so they downvote the truth answers

I downvoted because it's a poor answer. I'm surprised a user with your rep actually believes this, but I would respect it, even upvote it if you gave some body to back up your answer. As it is, I don't think you know what those terms mean. In a Pyramid scheme, your personal income relies on recruitment, that's not the case with any coins. In a Ponzi scheme, returns are given from new investors to old investors, which is closer, but no one is promising or dishing out returns here and transactions are completely transparent on the blockchain, a Ponzi relies on hiding the source of the returns.

That said, 99% of ICOs are scams IMO. Not anything as elaborate as Ponzi or Pyramid, just a simple grab and run.

"...a user with your rep actually believes this..." - this is wrong. You BELIEVE in opposite thing but I have proofs :) because I have knowledge in this area

I mean you hang around, being a valuable contributor in what you regard as a scam. That I find odd, a contradiction. But anyway, please do elaborate on the proofs in the answer.

The only reason to buy a currency is you think you'll be able to buy stuff with it in future, or sell it for more than you bought it in future. If you invest in an ICO, it should be on the hope there's a viably large future group of people trading it.
In one way, investing in cryptocurrencies is like investing in gold. The big difference is there's only one gold - but new cryptocurrencies are popping up every week.
I've seen ICOs marketed as "bitcoin for dentists". This puzzles me. Most dentists I know use the same money as everyone else.

By buying ICOs you do not buy a part of a company or similar. You are buying a part of a product of the company, thereby helping the company to further develop this product.
You invest in the technology* of the ICO.
If you think the technology is better than the technology used by BTC, ETH, ... in some way and you think it is good enough to become a solid Altcoin or even good enough to replace some of the big ones, you invest in it because you expect its value to rise.
*technology: better block size, POS instead of POW, ...

So I should buy it for charity? Makes no sense.

This answers assumes a wrong definition of better technology.

authors: Лев Петросян


text:
Why should retailers prefer bitcoin over other cryptocurrencies that have shorter confirmation time?
Considering that,

waiting 10 minutes for confirmation is too long in the retail world;
"zero confirmations" will become more risky once bitcoin popularity is high enough and people come up with services (automatic scripts) that try to do massive double spending,

why should retailers consider bitcoin over other cryptocurrencies that have shorter confirmation time, and therefore less potential risk?

Bitcoin is the incumbent in the space with a strong lead. It is not feasible to create faster blocks than about 60 seconds (as short block intervals create a host of other problems). 60 seconds however, is still way too long to wait at a cash register for a payment to confirm, and would be incompatible with current checkout processes.
This means:

Confirmation times cannot be short enough in another crypto currency to make waiting for confirmations feasible.
There are payment processors in Bitcoin that assume the risk of accepting zero confirmation transactions, while this is much less common in other cryptocurrencies. The risk is somewhat calculable, by assessing priority and other features of the transaction.
Retail payments is not where Bitcoin will break into mainstream, as it is the area where it has the least advantages.

So:
Right now, zero confirmation payments are possible through payment processors. Later, when "Bitcoin's popularity is high enough and people come up with services that try to do massive double spending", other services will be made use of to curb it. If and when this becomes a huge problem, e.g. multi-signature payments could be used more to change incentives.

Because retailers (and everyone else) care about getting their money first (not getting scammed) and about speed second.
That means that security is what matters. Anything less than 10 minutes reduces the security of a blockchain.
Another reason why altcoins fail as a valid alternative is that absolute security depends on the total speed of all miners combined and therefore the size and value (market cap) of the network. Bitcoin had the network effect causing altcoins to remain insignificant.
No need to despair though, Lightning Network will allow instant zero trust transactions. Maintaining the security of the bitcoin network.


text:
What is the exact value of upcoming block rewards?
Wrote a simple script that literally just halves 50 BTC (the initial block reward).
Are these block rewards correct or are the satoshis being rounded up/down incorrectly?
50.00000000
25.00000000
12.50000000
6.25000000
3.12500000
1.56250000
0.78125000
0.39062500
0.19531250
0.09765625
0.04882813
0.02441406
0.01220703
0.00610352
0.00305176
0.00152588
0.00076294
0.00038147
0.00019073
0.00009537
0.00004768
0.00002384
0.00001192
0.00000596
0.00000298
0.00000149
0.00000075
0.00000037
0.00000019
0.00000009
0.00000005
0.00000002
0.00000001

EDIT: Based on the total given here I think these halvings should be rounded down: https://bitcoin.stackexchange.com/a/9962/24926

The halvings occur in form of a bitshift operation. So, in other words, you halve and cut off. Therefore, the rewards should be rounded down.
A while back, I've generated a table with block rewards and other information.
The rewards in satoshi per block should work out to be:
5000000000
2500000000
1250000000
625000000
312500000
156250000
78125000
39062500
19531250
9765625
4882812   <--- first deviation from your table
2441406
1220703
610351
305175
152587
76293
38146
19073
9536
4768
2384
1192
596
298
149
74
37
18
9
4
2
1
0


text:
Is it possible to you convert privkey to BIP39 mnemonic (or entropy)?
I've generated a private key using vanitygen command by:
$ ./vanitygen 11
Difficulty: 256
Pattern: 11
Address: 114beUkusDnzqxif5BbESZMNo6T5N27...
Privkey: 5JeApQGQCCEp1K3rjXr8vDcEWMFw2Agzj2YZnN51zZC37Sw7...

Is it possible to convert a generated Privkey to BIP39 mnemonic words or entropy (hex)?
As the app/wallet which I'm using only accept BIP39 mnemonic words to import a wallet and I would like to create a wallet using a vanitygen utility.

So far as I know this isn't possible.
The mnemonic phrase is hashed to get a seed number. Hashing algorithms are one-way algorithms.
See BIP39

To create a binary seed from the mnemonic, we use the PBKDF2 function with a mnemonic sentence (in UTF-8 NFKD) used as the password and the string "mnemonic" + passphrase (again in UTF-8 NFKD) used as the salt. The iteration count is set to 2048 and HMAC-SHA512 is used as the pseudo-random function. The length of the derived key is 512 bits (= 64 bytes).

This seed can be later used to generate deterministic wallets using BIP-0032 or similar methods.

Related:
is PBKDF2 reversible?


text:
Bitstamp order book history
The current state of Bitstamps order book is available here:
https://www.bitstamp.net/api/order_book/
I want to analyze the history of the order book.
Do someone know if its available?

Can you explain why you need it at a third party if the data is already there in the API?

This data is available for sale here

Kaiko is the only company which stores and distributes order books for Bitcoin and Ethereum. For Bitcoin, historical data traces all the way back to August 2015. For Ethereum (ETH only, not ETC), data starts in June 2016.


text:
I want to buy some xrp and hold them offline
I want to buy some ripples (xrp) and hold them offline ( I want to keep the secret key with myself rather than trusting some hosted websites). Are there any steps to do this? Is ripple trade account mandatory to hold xrp? Can I simply buy xrp in cryptsy.com using btc and transfer them to an address managed offline in my computer?

Is "mammary" an autocomplete typo for "mandatory"?

Download "ripple-paper-wallet" https://github.com/OctillionSA/ripple-paper-wallet
Open index.html (HTML/javascript) in a browser (on a PC without Internet, better a fresh new OS).
Write down or Print out your paper wallet.
The public key starts with "r" is your Ripple address.
The private key starts with "s" is your "Secret", keep it safe! You can also use it in case you want to migrate your wallet to online GateHub or to any other wallets. (but it won't be a cold storage after that)
Activate this wallet by sending small amount 20XRP (or more) to the address. (You can activate it here: https://bithomp.com/activation/)
Make sure you address is visible in the explorer: (https://bithomp.com/explorer/).
You can "erase" PC which you used, or just turn it off together with the printer to clean memory.

Congrats: Now you can send big amounts to this address.
P.S: You can also buy a Hard Wallet. like "Ledger wallet" for example. - also a secure way to keep your XRP.


text:
What is bitcoin core developers solution to the increasing number of transactions?
I was reading that BitcoinXT is created to increase the blocksize to accommodate increasing transaction volume, but bitcoin core developers were against to it as it make the currency more centralized. But what is bitcoin core developers solution to the increasing transaction volume?

BIP 100: Jeff Garzik Miners vote on blocksize, constrained between 1 and 32 MB.
BIP 101: Gavin Andresen Blocksize increases to 8 MB, and doubles every two years after that. (This is what XT implements.)
BIP 102: Jeff Garzik Blocksize increase to 2 MB. (Intended as a fallback that everyone can agree on.)
BIP 103: Pieter Wuille Blocksize increase by 17.7% each year, consistent with current technological growth.
BIP 105: BtcDrak Each block increases or decreases blocksize by up to 10%. The change stacks multiplicatively. Voting to increase blocksize requires more proof-of-work, but not voting to decrease. The result is constrained between 1 MB and 8 MB.
BIP 106: Upal Chakraborty If more than half of last 2016 blocks are 90% full, double block size. If more than 90% are less than 50% full, halve block size.
It's a feature, not a bug: Almost-full blocks will encourage people to raise their fees, increasing the reward for miners, and thus increasing the amount of hashpower applied to Bitcoin.


text:
Who are the core developers behind Ripple?
Who are the core developers behind the Ripple system?

I know alternative cryptocurrencies are allowed on the Bitcoin stackexchange (sigh ...).  But is Ripple considered a cryptocurrency?

@StephenGornick Well, they are based on rules of cryptography as far as I know and share a few similarities to Bitcoin. Moreover, the response to discussion on whether or not include Ripple in this SE were all in the "yes" category - http://meta.bitcoin.stackexchange.com/q/335/323 .

http://bitcoin.stackexchange.com/questions/7897/what-is-joel-katz-role-in-ripple

Chris Larsen has been publicly identified as CEO of OpenCoin, the company behind the new Ripple. The core developers have been publicly identified as Jed McCaleb, Arthur Britto, Stefan Thomas, and me (David Schwartz).

David, I asked quite a few questions here on this thread on Ripple forums, mind taking a look? https://ripple.com/forum/viewtopic.php?f=1&t=34 I'm not sure that bombarding Bitcoin SE with these would have been that right thing to do.

http://bitcoin.stackexchange.com/questions/7897/what-is-joel-katz-role-in-ripple

FYI, David Schwartz = Joel Katz

First of all it's important to point out that Ripple (unlike Bitcoin) has been developed by a company, OpenCoin Inc. There is no information about individual developers on ripple.com or opencoin.com. The following information can be found from the Whois of opencoin.com:
 Registrant:
 OpenCoin Inc
 268 Bush St #2724
 San Francisco, CA 94104
 US

That said Ripple is (will be) open source and decentralized, people can write competing clients and the Ripple network could function in the future without OpenCoin Inc.


text:
Who is the programmer behind SatoshiDice?
I have talked with Erik Voorhees and I learned that he is not the person that programmed SatoshiDice. Does anyone know who is the developer behind this game is?

This is all I could dig up from https://en.bitcoin.it/wiki/SatoshiDice

SatoshiDice was the brand given the service initially created by BitcoinTalk forum user FireDuck before selling the system to another operator.


text:
How secure are the DNS servers for Bitcoin?
With the version 0.6, Bitcoin introduced the DNS servers that populate the initial peers for new clients. How secure are those servers in terms of being immune to takedown attacks, or injection of malicious data?

It doesn't matter that much since this is one seed method among several and an attacker would have to control all 8 of your outbound connections to cause you harm. So far as I know, the provided DNS seeds weren't audited for security against attacks from the outside but just were provided by people who were themselves trustworthy and who were able to offer the service. For example, one is run by Vladimir Marchenko.

Vladimir did run a DNS seed, but it was removed from bitcoind's source code in october 2011 (at his request). See my post below for more details.

There are some differences between DNS seeding and the IRC method. IRC used to function as a meeting point; essentially a centralized broadcast system to let (all) other nodes know about your existance, but it failed to answer the query "who is online now?". This means that when using IRC as a publically reachable node, you would often see a peak of incoming connections quickly, but little activity afterwards. Obviously, it was also vulnerable to DOS attacks as a centralized point of failure.
DNS seeds are much more intended to work as seeds: they provide nodes with a few reliable entry points into the network, but let the actual discovery of new nodes be done by the network itself (peers exchange other peer's IP addresses). Futhermore, the DNS system is capable of server much larger numbers of nodes.
To answer your actual question: the DNS servers themselves may be be vulnerable to attacks, but it is important to realize that they are far less essential to the network than IRC was. Also, the 4 active DNS seeds are operated by different people, and managed quite differently:

Jeff's node (bitseed.xf2.org), is currently a static list, updated mostly manually and infrequently, but hosted very reliably.
Matt's node (dnsseed.bluematt.me), is served by a BIND server (typical DNS server software), which is fed a fresh list of reliable nodes by a crawler every few minutes or seconds.
Luke's (dnsseed.bitcoin.dashjr.org) and my node (seed.bitcoin.sipa.be) run a custom DNS server+crawler system, which reports a random set of reliable nodes for each query.

One further remark on your question: the DNS seeding system was introduced in v0.3.21 (april 2011), and turned on by default in v0.3.24 (juli 2011). Since 0.6.0 (march 2012), IRC seeding is off by default. As of 0.8.2 (not yet released), IRC support will be removed entirely.

Any idea why bitcoin didn't opt for STUN//TURN/ICE? Seems like it would remove the complications involved with firewalls and such. Opening the world up to more peers. http://www.webrtc.org/reference/architecture#TOC-STUN-ICE

Does it use DNSSEC?


text:
Pool mining through the TOR network?
Is it possible to mine Bitcoins at a pool through the TOR network? If so, how would one configure the appropriate tools?

Why would you want to do something like this?

@Shamoon mostly something that came up during a conversation I had with my academic supervisor - he likes pointing out all possible exploits that could happen in relation to Bitcoin and one of them was attacking miners based on their IPs. So I figured out I'd investigate possible obfuscation of the addresses.

You could mine over TOR, but I would expect you would get much higher stales & downtime due to the high latencies of the TOR network.
You can use the application ProxyChains to force any application on your computer to use a proxy (or a combination of proxies), simply add a new proxy to ProxyChains, 127.0.0.1 as IP and your TOR software's port as port, and then setup Proxychains to force your mining application to use that proxy.
http://proxychains.sourceforge.net/

Eligius has a hidden service for Tor mining.

Well, they used to.

I've written an application to accomplish this on my own time.
Hoping this helps you and anyone else who comes across this answer.
https://github.com/Elycin/PoolOverSocks5
The test results that I've used over tor and the stratum protocol, I seem to have an average latency of 610ms to a Monero Pool such as pool.usxmrpool.com. This may vary for other cryptocurrencies, but using Tor there is no stales in 4 hours of testing.
Here's a image of it all working in my test environment:

Cheers.


text:
Mining pool hardware and bandwidth requirements
Has anyone measured what are the hardware and bandwidth requirements to run a mining pool? Are there any statistics on that per amount of active miners, their hashspeed and other variables?

a good dedicated server will be enough to run a pool like eligius
you will need to ln -s /dev/null debug.log ( or logrotate the file ) if you dont want to run out of space
you could use a good anti-ddos protection if your pool becomes popular ( most pools and bitcoin businesses are regularly ddosed .
concerning server load and bandwidth usage, you could be interested in reading this ( very technical ) log extract , setting this parameter ( difficulty rewrite ) can help to reduce load ( receiving more or less miners requests / second ) and / or make your pool more or less cpuminer friendly


text:
How to block a Ripple account from a Gateway's perspective?
I heard a few months back that Ripple enabled users to set their account to block other accounts from holding their IOUs. A feature probably aimed at Gateways to be able to freeze balances of blocked users and so forth. I am wondering, is there a documentation and a step-by-step guide for this functionality available anywhere?

You seem to start out describing the "Authorized Accounts" feature of Ripple, but then you then pivot to freezing.
Authorized accounts which allows an issuer to explicitly approve which accounts may hold his issuances. The feature is described here: https://wiki.ripple.com/Authorized_accounts.
The "freeze" feature Ripple allows issuers either globally freeze all their issued funds or to freeze funds issued to a particular user. Frozen funds may only be sent back to the issuer. The feature is described here:
https://wiki.ripple.com/Freeze.

The freeze feature is what I was looking for, thanks!


text:
Was a timejacking attack ever performed?
The timejacking attack appears to be a pretty straightforward attack to pull off successfully. I was wondering, whether it was ever performed and documented somewhere, or was it just theoretically described?

Against Bitcoin specifically or do you want to know of a timejacking attack on any chain (e.g., SolidCoin)?

@StephenGornick Bitcoin mostly, but information on other chains is also fine.

I guess this has nothing to do with Artforz' "time travel exploit"?

@phelix If you are referring to the question of what could one do if they could time travel with the blockchain information, then no, this is something different. Timejacking is forcing someone else's computer time to drift away from the normal time in order to make them not accept valid blocks.

@ThePiachu hehe, no I meant this: https://bitcointalk.org/index.php?topic=36425.msg555003#msg555003  it is something different, though.

@phelix Hmm, I don't entirely understand what is described there.

if it was performed successfully we wouldn't know it- I guess we would only know if it was unsuccessful- maybe people are performing it every day- maybe I'm performing it right now!

The question itself is interesting, but merely linking to an external description of the timejacking attack is not helpful IHO