texts: Include Bitcoin-Transaction within database-Transaction

texts:
I am writing a system that uses the Bitcoin Core JSON-RPC API.

Use case: user wants to withdraw some BTC to his BTC address.

My application handles this request by the following logic:

Check if user balance is OK.
Call Bitcoin API method 'sendfrom'. In
return I get the transaction ID.
Store the 'Wihdraw' informations
with the transaction ID in the database.

Now I want to make this error-safe, for example let's suppose that between points 2. and 3. the server crashes. Th 'Withdraw' info hasn't been saved to the DB. Next time user wants to withdraw some BTC it will allow they.

How do I make this error-safe? I have read that you can store a 'comment' in the Bitcoin Core, so an idea was to first create a unique comment, and store it in database with the withdraw address and amount, and set it status to UNDONE. Then submit this transaction to the Bitcoin Network and then set the status to DONE. In this way I can check if there are any UNDONE transactions in the DB and if so, verify if in my Bitcoin Core wallet there are no transactions with given comment. If there are not such transaction try to resubmit them.
The problem with this approach is, that to get a transaction with a given message is to loop through all transactions.

Is there any better way to make the Bitcoin-Transaction transaction-safe?

EDIT: Best would be not to store any transaction info in database, but use the Bitcoin Core database itself. Maybe this way? But only way is to store transaction details in comment. Maybe use it to store deserialized objects?


texts: When did BIP16 pass the 550/1000 threshold?

texts:
BIP16 says on 01 Feb 2012, if more than 550 out of the previous 1000 blocks include "/P2SH/" in the coinbase, then BIP16 will activate on 15 Feb 2012 (Source).

BIP16 was later revised. On 15 Mar 2012, if more than 550 out of the previous 1000 blocks include "/P2SH/" in the coinbase, then BIP16 will activate on 01 Apr 2012 (Source).

After searching the coinbase of every block, it looks like the 550 block threshold was reached at Block Height 171,455 on 16/03/2012 22:07:16. Since this is after the evaluation date of 15 Mar 2012, how/why was this considered to pass the threshold by the deadline, when it actually did not?

Any help appreciated. It is driving me nuts :-)


texts: Exploring a local copy of the Bitcoin blockchain without running a full node?

texts:
I've been hitting the rate limit for API calls for different services and have decided that it would be easier to have a local copy of the blockchain and query that instead. See my previous question:

Get fees for each transaction in a block without too many API calls

Is there a way to keep a continually updated copy of the blockchain locally?

Any suggestions for block explorers that would work in this manner?


texts: Can Bitcoin transactions actually be reversed/"undone" by the sender by using/abusing the newish "replace-by-fee" feature?

texts:
I am watching a live stream of Roger Ver talking about Bitcoin. Yes, I know that a lot of people violently hate him and I will say that I don't like Bitcoin Cash. I sold all mine for Bitcoin very early on, and it seems to me that bigger block sizes are a bad thing.
However, I must admit that many things that he said then and says now seem to make sense. I'm very open to the possibility that he's lying or warping the truth, but this in particular is something which stuck out to me:
Basically, he is saying that Bitcoin has been fundamentally broken on purpose by introducing the "replace-by-fee" feature, which, according to him, allows you to "reverse" (take back) Bitcoin transactions for minutes, hours and "sometimes even weeks" after it was sent.
Is there any truth to this? Is he purely making this up to cause fear and doubt? If so, please give me all the details.
My understanding of the feature is that it simply allows you to "unstuck" a stuck-in-memory-pool transaction by essentially throwing it a few more satoshis for the transaction fee, so that it will not be ignored but rather included quicker by the miners while a lot of Bitcoin transactions are happening at the same time.
Please let him be lying. Another thing that makes me doubt myself and my own understanding of the whole situation is what he says about the Lighting Network, which I agree is "ultra-complex" and "never seems to come into actual use".


texts: Java: bitcoinj; how to download a full block?

texts:
I would like to download a full block using Java and bitcoinj and then parse it to an array to be able to work with it. Here is some (very basic) pseudocode:

connect to network;
download latestBlock;
write/convert block to readable array;
read blockArray;
   sout: blockArray[23][55] // this should get me eg. a txid, address, ...
// or similar. I just want to be able to read values from the block

Is there a way to do this? I found the following solution here (Using bitcoinj to discover peers and download the block chain):

public class DumpLastBlock {
public static void main(String args[]) throws Exception {
    WalletAppKit kit = new WalletAppKit(MainNetParams.get(), new java.io.File("."), "test");
    kit.startAndWait();
    BlockChain chain = kit.chain();
    BlockStore bs = chain.getBlockStore();
    Peer peer = kit.peerGroup().getDownloadPeer();
    Block b = peer.getBlock(bs.getChainHead().getHeader().getHash()).get();
    System.out.println(b);
    }
}

Unfortunately, kit.startAndWait() isn't available anymore.

Can someone help me to get the latest block and be able to read its values?

Thank you very much :)


texts:
If I wanted to create a digital coin (asset) and wanted to keep the value of that coin steady (Think a dollar. It's worth a dollar today and a dollar tomorrow and a dollar every day.) What would be the best way to go about trading that coin? I am not looking to increase or decrease the value of the coin, I am looking more for a way that the coin could be cashed in by the holder. I figured I would come here because you all are way smarter than I am. :)

TIA


texts:
Can anyone point me to working implementations of BIP85?
The only one I'm aware of is the Coldcard Wallet implementation.


texts: bitcoind deamon create new account for every user

texts:
I'm new to this bitcoin and seems confused a little.

I need a system where I need to create new address for every user(personal account) where they will transfer some bitcoins to it and buy some products from my website.

So, I've started bitcoind and through bitcoin-cli, I've generated new address(getnewaddress) and send some bitcoins to it.

But on the transactions screen, it shows payment to yourself and the balance of the account doesn't change.

Can anyone, please help me how to create a new individual account address for every user and make the transactions. It should have a password or a private key also for security.

NPM Package I used : https://www.npmjs.com/package/bitcoin-core


texts: Will I need to keep track of my old private keys forever?

texts:
Let's say someone (person A) starts using Bitcoin and in a period of time eagerly publishes some of their randomly generated (eg. by the Satoshi client) receiving Bitcoin addresses on formus, sends some other addresses to some people etc.

The old keys are now associated with person A, and in a couple of years, some people might want to send person A some funds; they might find one of these old addresses (on an old forum post or in an old private Bitcoin address book) and use them.

But by now, A has moved on to using another wallet instead of the original Satoshi client, and moved all their funds there.

Doesn't this mean that A will forever have to keep track of all the original (non-deterministically generated) private keys of all the addresses that he might have sent, or made available, to other people, and keep importing them into new wallets whenever he moves to a new wallet system, and keep backing them up (safely), etc.? This seems very tedious and error-prone.

I know it's recommended to use a new address for each new transaction, but that's in no way enforced, and more importantly, it's out of person A's control -- it's all the other people that might want to send them money.

This problem will be less important in the future (eg. with deterministic key generation that requires only the seed to be backed up), but someone using the Satoshi client extensively and freely in the past might never be able to make a clean cut.

So is this a real problem or do I understand things incorrectly? Maybe there's a simple (and safe) workaround, or maybe this is not so cumbersome after all?


texts: When you need to validate a transaction is in a block

texts:
So after getting here, I have forgotten why you even want to validate a transaction is in a block, and how exactly this works. Wondering if one could explain

In what situation you want to validate a transaction is in a block.
How you find the block that the transaction could be in.

That link says here:

  Consider, for example, an SPV node that is interested in incoming payments to an address contained in its wallet. The SPV node will establish a bloom filter (see [bloom_filters]) on its connections to peers to limit the transactions received to only those containing addresses of interest. When a peer sees a transaction that matches the bloom filter, it will send that block using a merkleblock message. The merkleblock message contains the block header as well as a merkle path that links the transaction of interest to the merkle root in the block. The SPV node can use this merkle path to connect the transaction to the block and verify that the transaction is included in the block. The SPV node also uses the block header to link the block to the rest of the blockchain. The combination of these two links, between the transaction and block, and between the block and blockchain, proves that the transaction is recorded in the blockchain. All in all, the SPV node will have received less than a kilobyte of data for the block header and merkle path, an amount of data that is more than a thousand times less than a full block (about 1 megabyte currently).

I still don't understand why you need to verify the transaction is in the block, some questions that come up are:

The relevance that specific block has to you. Even if you verify it's part of some block, I don't see why you care it's from that block.
So you prove that it's recorded in the blockchain. I don't see how this means it's valid.


texts:
People say a "block is mined". What exactly do they mean?
I know mining is related to some group of people does a lot of work and get rewarded for the power and energy they utilized during the process. But what process are they performing and why?
I read from white paper of bitcoin that they perform work like guessing the nounce number which is randomly generated number attached to the block. So, is it really necessary to attach this random number to the block containing transactions in the first place and then wasting resources in guessing it.
I didn't wanted to flood this portal with small questions like this, so I think only in one go the explanation to this thing will work.


texts: Bitcoin database needs to rebuild every time after defrag or reboot

texts: I'm running Windows 10 technical preview 10049 and I'm running bitcoin-qt from my data hard drive with 1.17TB available disk space. It is a striped volume and due to much data writing and deleting it needs to be defragmented from time to time. Every time I have done this and I start Bitcoin-QT again it gives an error that the database needs to be rebuild what takes ages.


texts: Did the FIBRE protocol reduce the occurrence of chain forks?

texts:
I've just learned that Fibre protocol is used for really fast block propagation. My understanding is that if blocks are propagated faster, miners can more quickly continue to work on (what seems to them) the head of the chain, there is a lower chance for temporary forks to happen and even if they occur, they are likely to be short (small length). Please correct me if I got that wrong. That leads me to two questions:

Is the Fibre protocol the reason for rare temporary forking?
Is the Fibre protocol also the reason why mining difficulty is pretty much the same across the network (I assume it's the same, otherwise it would be problematic, right)? If difficulty changes after 2016 blocks on average and block propagation is fast, everyone can adjust their mining difficulty pretty easy and there wont be much difference inside the network (most of the nodes will up to date)?


texts:
As I understand it there are four (4) hardware wallets produced currently (2018).

Which businesses, web sites, or academic papers in the field review and compare the security of these devices?  Is there such a security review?

(Just TBC by "review" I don't mean, "this one is a nice color" etc. - security review.)


texts: API for automatical buying and selling coins in Java

texts:
I need to create a simple bot for buying and selling coins and the programming language needs to be Java due to some technical specifications.
These are the functions which I need from that API:

buy(args)
sell(args)
getCurrentPrice(args)

If you know any API-s which are reliable and suitable for Java, please let me know.


texts: How to fetch the latest unspent transaction by an address using bitcoind?

texts:
I want to build a server, which provide following APIs:

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

First by first, I know I can do above stuffes by blockchain and coinb, but I want to build my own APIs. What I have tried with the Python code has list as below:

import binascii
import json
from decimal import Decimal
from pprint import pprint
from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
from config import ConfigBasic

class BitPort(object):

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

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

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

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

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

    def sendrawtransaction(self, address, pubkey):
        pass

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

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

Because make a raw transaction need the following at least:

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

From many tutorial, like How to create a raw transaction, which is good. but didn't mention how to get an unspent by a address. which don't store inside the bitcoind side.

Unfortunately, I can only fetch all transaction by my wallet's address, which live in the bitcoind node. Once I tried the someone address, and I got the following exception:

Traceback (most recent call last):
  File "core.py", line 43, in <module>
    print(bp.get_amount_by_addr(addr))
  File "core.py", line 17, in get_amount_by_addr
    return self.rpc.getreceivedbyaddress(addr)
  File "/Users/frank/venv/bitcoin/lib/python2.7/site-packages/bitcoinrpc/authproxy.py", line 141, in __call__
    raise JSONRPCException(response['error'])
bitcoinrpc.authproxy.JSONRPCException: -4: Address not found in wallet

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


texts: Mining Pool Hub: how to understand if it is mining?

texts:
I have just set up Mining Pool Hub, how can I understand if it is actually mining bitcoins (or other crypto-currencies)?

Because sometimes I see yellow alerts
PoolApi  AHashPool has failed
PoolApi NiceHash has failed

Also sometimes it appears "Status: Failed"

Could you explain, for beginner users, how to understand if the software is mining or not? And better, how to understand if the software it's mining at its best?

Right now this is what I see:


texts:
In order to reduce the size of the blockchain, we can use pruning with the bitcoin core client. The description of the option says:

  Reduce storage requirements by pruning (deleting) old blocks. This
  mode disables wallet support and is incompatible with -txindex.

If I understand other sources explaining pruning, correctly, it will only keep unspent transaction outputs (UTXOs). This is what's stored in the LevelDB in the chainstate directory. Therefore, I would expect pruning to remove all other files (or rather all blk files) and only keep the chainstate DB. I cannot test this myself right now, hence my question.
If someone uses the pruned mode, can you confirm that it uses around 2.5 GB (size of the chainstate)?
Also, why does pruning disable the wallet support?


texts: How can I read information from the blockchain?

texts: I don't want to use an existing service, like Blockchain.info or BlockExplorer.com. Is there some library out there that will let me read the blockchain programatically?


texts: What's an efficient model for redistribution of coins between wallets?

texts:
Let's say I have 50 addresses which have an average of 0.5 BTC. Some have two or three times the average balance, while others have less than 0.1% of the average. Many times per day an address is selected to either receive or send some amount of coins, fueling the inequality.

What's an efficient, cost-effective method of rebalancing a large number of addresses such that each contains roughly the average balance?

(Assume the algorithm to select a keypair with which to transact is fixed and cannot be modified for argument sake.)


texts: How do I join the Bitcoin Core PR review club meetings on IRC?

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


texts:
I'm new to this BitCoin, as in read about it yesterday started with it today. This technology has intrigued me to the level I cannot explain, its truly genius!

Back to my problem, I have a NVIDIA NVS3100 with approx 48 GFlops speed. I am using it to mine. I have taken part in different pools, but the problem is that miner is not connecting to the RPC server.
This is the error:

Could not retrieve work from RPC Server
CURL Return Value = 1

I'm using rpcminer-cuda made by puddinpop on Windows 8.

Would I have to make rules in firewall? or something like that?


texts: Compiling Stellar-core on windows: where does mingw/cygwin come in

texts:
I am trying to compile stellar-core code on windows but I can't to figure out what to do with mingw to make it work. I.e. I have downloaded and installed all required tools including mingw but I don't know how to setup mingw to work here.

The install.txt says mingw is required for building xdrc but there isn't much more. When I tried to build is 2 out of 7 projects compiled successfully.

All tips will be appreciated. Thanks


texts: UpdateTip logs appear in debug.log unsolicitedly


texts:
I see these "Public Notes" on blockchain.info. What are they? How do they work? Can I make one? Here's a random example: http://blockchain.info/address/1DkyBEKt5S2GDtv7aQw6rQepAvnsRyHoYM
Some of the transactions on that address have "Public Notes" before them.


texts: % of full nodes running Bitcoin Core versus other node software

texts:
Is anybody able to tell me a credible source (for an article) that can show me the percentage of all bitcoin full nodes that are running Bitcoin Core (as opposed to other software)?
I could not find this information at bitcoincore.org or at bitnodes.io.
Thank you.


texts: How to generate a Litecoin testnet addresses (Segwit also) (Derivation path, bip32)

texts:
I'm creating a wallet that generates address for litecoin mainnet in two ways.

One is using bitcoinjs-lib. This library has an object with all the data need it to create private keys and address:

import Bitcoin from 'bitcoinjs-lib'

console.log(Bitcoin.networks.litecoin)
{
    messagePrefix: '\x18Bitcoin Signed Message:\n',
    bip32: {
        public: 71979618,
        private: 71978536
    },
    pubKeyHash: 111,
    scriptHash: 196,
    wif: 239
}

This ok for the mainnet, but I am not able to find on internet the same version of this for testnet.

The other way is using derivation paths. But again, I only could find the mainnet version of this.

mainnet: `m/44'/2'/0'/0/${index}`
mainnet_segwit: `m/49'/2'/0'/0/${index}`

Any idea where I can find it?


texts:
I made a transaction to a wrong adress. How can I find where the transaction reciever has an exchange adress?
Transaction:
Completed   BTC 0.10951991  2021-01-02 23:25:18 Adres:1L5wSMgerhHg8GZGcsNmAx5EXMRXSKR3He
Txid:
4a22a54a7a314a4a6fcf14d1b8a64cbc320fcd854d5cd806a23024f446a4fbb2


texts: What keeps someone from creating a malicious wallet app?

texts: What keeps a person or company from creating an app like Armory but if you select "import or restore wallet" just emailing them your wallet key after you enter it and draining your account?


texts: Official or default Bitcoin wallet for Android

texts:
I'm new to cryptocurrencies, and I noticed that both Litecoin and Dogecoin have official wallet apps for Android.

Does Bitcoin similarly have an official Android wallet app? If not, is there a community standard or some widely used app?


texts: How to get a full view of the lightning network with c-lightning?

texts:
As I understand lightning a node should in principle have a complete view of the lightning network graph (i.e., all nodes and channels). However, I also understand that for practical reasons the view will not actually be fully complete (some update may not have reached the node, I suppose).
For example I am currently using c-lightning. After running a node for some hours, if I do lightning-cli listnodes I get a list of ~5k nodes. But if I look at 1ml.com they currently report that there are ~14k nodes (~7k with active channels). So there seems to be rather a large gap between what I see and what 1ml sees.
For a particular use case I would like to have a "as complete as possible" view, though. My question then is if there is some way to configure the node to more actively explore and learn the full network?


texts:
My Bitcoin Qt is behind 7 years and 32 weeks... I'm new to all this so I wonder:

if I shut down the pc, is the sync gonna continue or will it restart from the beginning?
And.. how can I get my transaction without waiting for 7 years?
and also, does the sync need bigger ssd storage?


texts: signing colored assets to identify worthwhile assets

texts:
With colored coin and similar solutions, anyone can create an asset. Using counterparty as an example, this gets out of control very quickly with no way to determine "good" assets easily (http://www.blockscan.com/asset.aspx)

Lets assume people are dealing with shares of centralized corporations, instead of distributed autonomous ones, could a multisig or any signing solution using an institution that people trust be used to "sign" all assets that institution likes?

With multisig, I could imagine an issuer wouldn't be able to finish creating the asset until the trusted institution also signed the transaction, this would mimic securities issuance in the regulated markets.

For instance, FINRA signed the asset and there is an aggregator that looks for FINRA signatures + color. And then people would know that this asset has some kind of recourse behind it if things didn't work out.


texts:
I'd like to experiment with bitcoin technology, crypto currency, and encryption. I thought the best way to accomplish that is building my very own bitcoin trading bot.

It seems like a daunting task, but I think I can accomplish this in the following outlined steps:

The bot has to be connected to a wallet. I think I can accomplish
this by connecting it to a 3rd party wallet with public API.
My bot has to be connected to an exchange that also provides public
API which allows automated buying and selling
My bot has to be able to read the exchange's order book and price.
Create a simple algorithm for trading.

I'd like to know, what is the best way to build a wallet for my bot? And which exchange should I connect my bot to?

I know I am probably missing some key points. So if someone can point me to the right direction, I'd greatly appreciated.

Thanks


texts: How to find the threshold of hash inequality at a given time?

texts: For a miner to mine in bitcoin, he should find a nonce s.t the hash of block <= threshold. At a given time lets assume the total hash rate of the network be A hashes/sec and the mining rate be f blocks/sec. Is there way any to calculate this threshold from these parameters?


texts:
I want to get the data for the total market cap similar to what I see when I view this page in the total market capitalization graph.

https://coinmarketcap.com/charts/

I already have the bitcoin market cap data but are there any publicly available datasets or is there anyway to get it directly from coinmarketcap? I'd like to be able to get as much data as I can.


texts: Does this explanation of the security of an electrum seed check out?

texts:
The explanation in question is given here and reproduced below as well:

Electrum currently use the same wordlist as BIP39 (2048 words). A typical seed has 12 words, which results in 132 bits of entropy in the choice of the seed.
Following BIP39, 2048 iterations of key stretching are added for the generation of the master private key. In terms of hashes, this is equivalent to adding an extra 11 bits of security to the seed (2048=2^11).
From the point of view of an attacker, the constraint added by imposing a prefix to the seed version hash does not decrease the entropy of the seed, because there is no knowledge gained on the seed phrase. The attacker still needs to enumerate and test 2^n candidate seed phrases, where n is the number of bits of entropy used to generate the seed.
However, the test made by the attacker will return faster if the candidate seed is not a valid seed, because the attacker does not need to generate the key. This means that the imposed prefix reduces the strength of key stretching.
Let n denote the number of entropy bits of the seed, and m the number of bits of difficulty added by key stretching: m = log2(stretching_iterations). Let k denote the length of the prefix, in bits.
On each iteration of the attack, the probability to obtain a valid seed is p = 2^-k
The number of hashes required to test a candidate seed is: p * (1+2^m) + (1-p)*1 = 1 + 2^(m-k)
Therefore, the cost of an attack is: 2^n * (1 + 2^(m-k))
This can be approximated as 2^(n + m - k) if m>k and as 2^n otherwise.
With the standard values currently used in Electrum, we obtain: 2^(132 + 11 - 8) = 2^135. This means that a standard Electrum seed is equivalent, in terms of hashes, to 135 bits of entropy.

Is the assumption that 2048 rounds of key stretching add 11 bits to the security of the seed correct? Is the overall explanation correct?


texts: How to generate bitcoin address with gpu in python

texts:
I have seen a lot of bitcoin address generator with python, but all of them run on cpu, and are very slow,, for fun and educational purposes, I have been trying to use gpu to run the python script to make it fast, I tried Numba but it keeps showing up errors,
I am trying to solve this problem to help myself and others that might want to run python script on gpu..


texts: One of my transaction remain unconfirmed and I think I spent uncomfirm transaction.pls how can this be solved pls here is my transaction Id https://blockchain.info/tx/cd3d718dd370f7446f1b73c6a18c4441e0eb78a63bae6fb0964470e5fe872da3


texts: What is "fed-peg" and "predefined functionaries" with sidechains?

texts:
I am reading about side-chains, and what I read in this article is:

  The initial sidechain included in Sidechain Elements works on a
  federated security model; while it’s still peer-to-peer and
  consensus-based, security for the blockchain is provided by a set of
  predefined functionaries in an arrangement called a Fed-Peg. A number
  of academic groups and individual contributors have agreed to run the
  Sidechain Elements Fed-Peg, including blockchain groups at Stanford,
  MIT, and Princeton. The sidechain does not include mining or
  proof-of-work at this point.

I have no idea what that means. What is "fed-peg"? Why is that needed? Does it change in any way the security of the main chain? How does it differ from decentralized PoW?


texts: Where can I download BTC historical ticker data?

texts:
Where can I download historical data for Bitcoin price for mtgox?

In this 2 Year old thread:
Where can I get historic data series of Bitcoin prices?

The described solution is as follows:
download this tool and use it:
https://bitbucket.org/nitrous/bq

The problem is the tool only downloads data until 12.03.2013

Can someone explain to me what I need to do to get the data after this date.
Does someone have this data and could upload it or knows where to download the data?


texts: How does initial exchange of inventory work when both nodes have different chains?

texts: When two nodes connect to each other and exchange getblocks messages but they have different blockchains will both nodes download each others blockchain to verify which has higher chainwork or will they somehow exchange chainwork beforehand or something completely different?


texts:
I get this error with BFGMiner, when running "bfgminer -D -d?:"

 [2013-04-25 09:47:31] ft232r_scan: Found 093a:2510 - not a ft232r
 [2013-04-25 09:47:31] ft232r_scan: Found 1d6b:0002 - not a ft232r
 [2013-04-25 09:47:31] ft232r_scan: Found 1d6b:0002 - not a ft232r
 [2013-04-25 09:47:31] ft232r_scan: Found 8087:0020 - not a ft232r
 [2013-04-25 09:47:31] ft232r_scan: Found 8087:0020 - not a ft232r
 [2013-04-25 09:47:31] Started bfgminer 3.0.1
 [2013-04-25 09:47:31] Loaded configuration file /home/geremia/.bfgminer/bfgminer.conf
 [2013-04-25 09:47:31] CL Platform 0 vendor: Intel(R) Corporation
 [2013-04-25 09:47:31] CL Platform 0 name: Intel(R) OpenCL
 [2013-04-25 09:47:31] CL Platform 0 version: OpenCL 1.1 LINUX
 [2013-04-25 09:47:31] Error -1: Getting Device IDs (num)
 **[2013-04-25 09:47:31] clDevicesNum returned error, no GPUs usable**
 [2013-04-25 09:47:31] Not a ZTEX device 093a:2510
 [2013-04-25 09:47:31] Not a ZTEX device 1d6b:0002
 [2013-04-25 09:47:31] Not a ZTEX device 1d6b:0002
 [2013-04-25 09:47:31] Not a ZTEX device 8087:0020
 [2013-04-25 09:47:31] Not a ZTEX device 8087:0020
 [2013-04-25 09:47:31] Devices detected:
 [2013-04-25 09:47:31]   0. CPU 0  (driver: cpu)
 [2013-04-25 09:47:31]   1. CPU 1  (driver: cpu)
 [2013-04-25 09:47:31]   2. CPU 2  (driver: cpu)
 [2013-04-25 09:47:31]   3. CPU 3  (driver: cpu)
 4 devices listed

Here is my output of "lspci -nn | grep VGA":

00:02.0 VGA compatible controller [0300]: Intel Corporation Core Processor Integrated Graphics Controller [**8086:0046**] (rev 18)

Can I not mine with an Intel Integrated Graphics Controller? thanks


texts: Wallet balance showing as unconfirmed - SOLVED!

texts:
I'm using MultiBit and my wallet balance is showing as unconfirmed. The last transaction I made was a couple of months ago and seemed to be fine (https://blockchain.info/tx-index/25339607f1d5e3f36cd964554fd85c399c9359e58b169d6b7028b3627ef74f12).

When I try to make a payment with the unconfirmed funds I'm told "The error was insufficient money, missing XXX satoshis..."

I can see the correct balance in MultiBit but it is unconfirmed. The confirmed balance appears to be Zero. Any insight on what might have happened here or how I can fix it? I should say that I'm synced to the network and have 10 peers showing. Thanks for any help


texts: What do Bitcoin Core options "maxreceivebuffer" and "maxsendbuffer" do? Is this a way of controlling the bandwidth Bitcoin Core uses?


texts: Do the all coins/tokens have the corresponding network exploring sites/tools?

texts: I see that Bitcoin has Blockchain.info, Ethereum has Etherscan.io. What about other coins and tokens. Is it obligatory for the given coin/token to have such blockchain exploring site/tool, is it a best practice or a voluntary measure?


texts: Can the outputs of a transaction change over time?

texts:
I would like to know if the outputs of any given transaction can change over time. For example, suppose I send a payment to three different addresses creating an unconfirmed transaction with several outputs:

Output 0: Address1
Output 1: Address2
Output 2: Address3
Output 3: Address4
Output N: AddressN

If I examine that same transaction two or three months later, can the outputs index association have changed in any way? For example, could Address1 have becomed the Output3? Or is that information deterministic in itself?

Thank you.


texts:
I am trying to better understand the fundamentals of the BLOCKCHAIN.
I am not technical and am hoping someone can offer up an explanation in LAY TERMS.

Thanks in advance.


texts: What is the memory every node allocates locally for the Bitcoin blockchain?

texts: https://blockchain.info/charts/blocks-size states that the current size of the Bitcoin blockchain is ~134,000MB.  That is 127GB.  Does that mean that every machine that is mining currently allocates 127GB+ for the blockchain?


texts: testnet.blockchain.info api not showing latest results?

texts:
I sent a transaction to the testnet address mzWCWQU6phb9rKSAiQ4FBU92sGYtY7tjPH a few days ago and I have been using the testnet.blockchain.info api for a while now in my project.
It was working fine last month but now it doesn't seem to be getting the latest transactions.

This is the api call:

https://testnet.blockchain.info/multiaddr?active=mzWCWQU6phb9rKSAiQ4FBU92sGYtY7tjPH

and this is the same address on Blockcypher:

https://live.blockcypher.com/btc-testnet/address/mzWCWQU6phb9rKSAiQ4FBU92sGYtY7tjPH/

Does anyone know what the issue is?


texts: How to integrate a Bitcoin payment service in my auction site

texts:
So, if I wanted to have Bitcoin as a form of method where users could pay, how would I do this? Obviously, there is paypal, where the buyer sends money through pp, which disperses to the seller. So, I need to have this type of system on my site as well. Is there anything like it for Bitcoins?

Thanks!


texts: Blockchain.info : "Insufficient Funds Available"

texts:
When I sent bitcoin to an address by using Blockchain.info API, I got "Insufficient Funds Available" error. Like below..

[API Request]

https://blockchain.info/fr/merchant/xxxxxxxxxxxxxxxx/payment?password=password1&second_password=password2&to=yyyyyyyyyyyyyyyyyyyyyyyyyy&amount=1000

[API Response]

{"error":"Insufficient Funds Available: 0 Needed: 11000"}

I don't know why because my account has sufficient balance.

The error is not always happened. I guess that I get an error when my wallet has unconfirmed transactions. But not sure..

If you know the reason, I really, really need to know it. Thanks.

[Update]

I am finding the reason. I have only one bitcoin address in my Blockchain.info account.

The followings are the state of the confirmation about my bitcoin address and the API call result.

Case1 "Insufficient Funds Available" error occurred

balance = 1586000;
hash = 1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
Received = 12166000;
sent = 10580000;
"unconfirmed_balance" = "-11000";
"unconfirmed_received" = 1575000;
"unconfirmed_sent" = 1586000;

Case2 OK

balance = 1575000;
hash = 1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
received = 13741000;
sent = 12166000;
"unconfirmed_balance" = 0;
"unconfirmed_received" = 0;
"unconfirmed_sent" = 0;


texts: Which exchanges, if any, satisfy the following requirements?

texts:
Accepts non-US/non-EU citizens (specifically, they must accept South African citizens).
Must be a mostly international or US based exchange (like Coinbase or Kraken).
That is, it's supply and demand must either largely be based in the US or EU.
Has an API which supports depositing from bank card ($US) into exchange.
Has an API which supports withdrawing(sending) from the exchange/wallet, via email.
(like this one: https://www.luno.com/en/countries)

An example of an exchange which meets requirements 1 and 2, but fails 3 and 4 is CEX.io, while an exchange meeting requirements 4, but failing all others would LUNO.com


texts:
Please ignore the connection between difficulty & creation rates for the purposes of this question.

Can a difficulty be set so low that the security of transactions is compromised?  In other words, if a difficulty is set too low, can malicious miners forge transactions?

If so, what number is "too low", and how is it determined?


texts: Bitcoin: can transaction and its parent be in the same block

texts:
I'm trying to understand bitcoin transactions verification specified here. Item 10 states, that parent transaction (mentioned as input for current) should be searched not only in already confirmed transactions (in main chain), but also in transaction pool (which contains unconfirmed transactions). This means, that transaction can become a candidate to be added to block even if it's parent is not in the blockchain. If this is true, than consider following situation:

Transactions A and B are created in the same moment, A is parent of B.
Miner receives both of them, both are considered valid.
Miner adds only transaction B to block.

If such block is mined, it will be invalid, because other nodes will fail to validate transaction B. But if we also insert transaction A in it, will validation succeed on other nodes? I.e., is it possible to add transaction and its parent to the same block?


texts:
I'm trying to send some BTC - I have two send transactions stuck in MultiBit Classic (0.5.19). They have been stuck for a few weeks.

Both transactions have fee of 0.0001 BTC fee which is most likely why they are stuck.

I tried 'resetting the blockchain' several times in the last couple of days, and I tried increasing the fee to 0.0005 BTC between resets, all to no avail. The transactions still show up as having a 0.0001 BTC fee.

What can I do get these transactions processed (or cancelled)?

The documentation for MultiBit HD, the new version of Multibit, states that the best way to upgrade from MultiBit Classic is to create a new wallet and transfer the balance but how can I do this if the bitcoin is stuck in the transaction?

If I was to export the private keys to another wallet service, say  blockchain.info, what would happen to the BTC in the stuck transactions?


texts: Which files do you recommend I start with to learn Bitcoin?

texts:
In the bitcoin/src, which files are the "main" files I should start with if I want to learn how Bitcoin works? In other words, where's it good to branch off from?

I'm new to C++, but can code okay in PHP and Python. I'm learning C++ along the way.


texts: How to protect the latest block in block chain be tampered?

texts:
We know for each block in block chain, it has the previous block header hash which make the block be tampered become difficult. If the block is tampered, then all blocks after this tampered block need to be tampered too.

However, how can we prevent latest block (last block in the chain) be tampered ? There is no next block follow it which means there is no header hash in next block.

Thanks in advance.


texts:
I'm a programmer and want to get to know more about encryption and how Bitcoin works, but there is not much on the web describing how all this code works. It would help if there was some visual way to describe the concept of how and what its doing.

How can someone send the public key and private key to another computer without giving away the private key? If you didn't send the private key, how would the other computer know the transaction was from you and not someone else pretending to be you?

I have read up on key pairs and have managed to generate a key pair in java. Everyone's example of 'using' key pairs is very vague. How do you "use" the key pair to confirm a transaction. I know you have a private key that signs the transaction and the public key some how confirms the transaction but i don't understand the "how" it is "used" if you send a transaction with your secret key wouldn't that no longer be a secret key? How is the public key confirm the transaction was signed correctly? How can you send your secret key out with out some one using it once they get it? If Bob sends a transaction to Tim would Tim not now have Bobs security key?

I'm very sorry if this question sounds dumb. I'm just having a hard time understanding how you can send some one a transaction and be able to "sign" that transaction and how its confirmed. a lot of posts people are saying its Elliptic Curve Digital Signature Algorithm (ECDSA) but how is it doing all of this.


texts: What is the size of the blockchain stored on a user harddrive after pruning has occurred?


texts: How is the transaction fee for sending bitcoins using Electrum wallet calculated ?

texts: I am trying to understand how is the fee for transaction calculated for desktop wallets like electrum.


texts:
I know the original proposal on bitcointalk is here, but can someone explain it more succinctly?

How does Multi-PPS work?
Can it actually prevent mining centralization?


texts: Is there a public repository/api of coin/token logos

texts: I am developing an cryptocoins related app and I would like to display cryptocoin logos there for all coins available for trade. Is there an API out just a publicly accessible repository that would give me those logos?


texts: Attacker Changing Address to Receive Block Reward

texts:
A miner creates a block B which contains address α, on which he wants to receive his rewards. An attacker changes block B, such that instead of α it defines a new address α’, which is controlled by the attacker. Will the attacker receive the rewards that the miner tries to claim and why (or why not)?
My idea was that first of all the attacker would have to redo the proof-of-work. Therefore it is unlikely that their blockchain would be the longest. However, is there any way that the attack could go through other than solving the proof-of-work faster than the rest of miners? What if the attacker changes the most recent block? Could the block then be on the longest chain?
I have also read that the Block Reward in a stale block is no longer spendable on the difficultywise-longest and well-formed blockchain; therefore whoever mined that block does not actually get the reward (or the transaction fees). So if the attacker's changed block becomes a stale block, does this mean the reward cannot be claimed by the original miner or the attacker?


texts:
Big transaction, sender put good miner fee on it but it is not confirming. Can anyone help me or tell me why it isn't confirming?

https://blockchain.info/tx/a95f4d5fa41b194454bdd6d665f002ec31b5e8b25c12bc22c39497f2a7139b2f


texts: How can I find out the address my payment will come from?

texts: Can I find out the address I am going send from before making a payment? And could this be useful for merchants that want to identify my transaction?


texts: Do tx fees issued by users follow a particular distribution ? I'd guess they follow the normal distribution, but I'm not sure. More precisely, how tx.fee/tx.size is distributed in the mempool ?


texts: Is one quad GPU rig better than two dual GPU rigs for Scrypt mining?

texts:
I want to buy four r9 280x cards for Scrypt mining. I already have all other hardware components to create two dual rigs. Would one mining rig that uses all four GPUs instead be significantly better?

I would have to buy a motherboard or riser cards to create the quad rig. I am indifferent to power consumption.


texts: Is there any way to measure relative occurrences of wallet theft over time?

texts:
Soon after Bitcoins became valuable enough to be worth stealing, I started seeing news about viruses/malware that steal Bitcoin wallets. Presumably, wallet encryption has reduced the level of this, but is there any way of measuring it?

Given that there is probably growth in the number of users, I guess you'd have to compare it with that figure to get a comparative figure over time for the chance of having a wallet stolen. Is that figure measurable?


texts: Bitcoin ABC, When Fed Bitcoin Core Chain Syncs to Aug 1 6:23AM 2017, Then Freezes

texts:
I've installed Bitcoin ABC, set bitcoin.conf to point at a copy of my directory from Bitcoin Core, and let it sync with the network.  All was well until it froze at the fork (Aug 1, 2017, 6:23AM).  The client is responsive, but my progress doesn't budge and the "Estimated time left until synced" stays at "calculating..."  At first I thought I had some kind of network error, but that doesn't appear to be the case.  I have 8 active connections.  Why won't it move beyond this point, downloading the post-fork transactions?

Bitcoin ABC, v0.16.2.0-unk on Ubuntu 17.10 (Mate).


texts: What is the current state of BIP 38 (encrypted paper wallet) integration with cell phone wallets?

texts:
Given current implementations, is there a wallet that I can use to scan a private key, then enter in the password as a PIN, and the wallet will send from the key and sweep the rest onto a key generated from the phone?

Android, obviously.

Also, what's the state of BIP-38 integration with wallets in general?


texts: Say if I was creating a new bitcoin website and I want to transfer some bitcoins from one of my own private wallets to another would that make it so the transaction would confirm almost instantly because it is a closed loop?


texts: Why do people expect Bitcoin Unlimited to cause miner centralization?

texts: I've seen the argument that Bitcoin Unlimited will cause mining to centralize further. Can you please explain why people expect that to happen?


texts: Why did Satoshi design Bitcoin to be mineable only on specialized hardware, if the goal was decentralization?

texts:
GPU-mineable cryptos are arguably more decentralized.

Did he simply miss this design aspect or does this sound fishy to you?


texts: any limitation to use "bitcoind - zapwallettxes" to reverse unconfirmed transactions?

texts:
I read the following lines in some post about how to reverse a bitcoin transaction:

"How to stop/reverse a Bitcoin transaction without confirmations:
Run bitcoind and with -zapwallettxes.
This makes the wallet "forget" any unconfirmed transactions, thus enabling you to reuse their inputs."

My question is: Is this method only applicable to specific wallet? I use blockchain.info wallet and have some unconfirmed outgoing transactions not yet confirmed.


texts: Why does hash of new created block must meet certain requirements in blockchain?

texts: I am a very very beginner with blockchain. I've read a lot of articles and can't understand one thing. When data miner is creating new block, the hash of such block must meet certain requirements. As I understand this is the key difficulty for creating new block. However, as a programmer I know that it is very easy to create new hash. Can anyone explain what is the reason of such requirements?


texts: Fundamentals: Addresses don't hold coins, wallets do?

texts:
In the beginning it was my understanding that:

Every address has a private key
Every address has a balance
Every address may send and receive coins.

This is simple.

But now I am using more proper wallets (because you shouldn't reuse addresses) and got a little confused about not having one central bitcoin address. In specific - how does an airdrop work if my holdings are split between all these addresses.
But more generally, what I read was:

  Bitcoin transactions can have many inputs.
  You shouldn't think in terms of address balances. The protocol doesn't work in balances internally. If you receive 0.3 BTC, then you have a "0.3 BTC coin" in your wallet, not so much an address with a balance of 0.3.

There are many implications.
What if I add a private key of an address to two different wallets?

Is a wallet not just a keychain of all these addresses and private keys?
I guess not, if so, how would airdrops work, how would you send more coins than one address holds with just one transaction?


texts:
I have read this question that asks if all UTXOs in an address are sent to a change address or only the UTXO involved in the transaction.

As part of a spending transaction, the public address is revealed. And that is part of the reason people suggest not to reuse an address.

My questions are:

Are all UTXOs (even those not part of the transaction) sent to a change address or only the one involved in the transaction? (This was not really answered in the linked question.)
If only the one involved in the transaction is sent to a change address, is it not a security risk? The remaining UTXOs left in the bitcoin address now have their public key made public.


texts: Hacking Question: Hiring a developer to run bitcoin core to process bitcoin payments on site

texts:
Hacking Question: First of all i am totally noob. I dont know much about bitcoins. I have an ecommerce website. I want to accept bitcoin payments for my products. I dont want to use 3rd party api's. I am hiring a developer to run bitcoin core on my server for my website to accept and process bitcoin payments.

Is it safe to use a freelance developer?
He'll have access to private keys?
Will he be able to hack it?
Is there a way to make my bitcoins safe from hacking in which insider job is involved?

Please kindly give me a serious, detailed and non technical answer


texts: As of now, the only API I can find that serves historical data is https://blockchain.info/charts/market-price?timespan=60days&format=json. It only uses USD, and I need to serve non-USD data. My google-fu is failing me, does anyone know of an API that serves historical data for more than one currency? Preferably a currency I can specify as part of the API call.


texts: Using the bitcoind -testnet test network and automatically creating test wallets

texts:
I am developing some bitcoin based services and I am interested of automatizing testing for them.

bitcoind seems to come with -testnet option. What are the best practices of using this?

How to create wallets for tests - should they be persistent or temporary
How to spoof balances of the wallets
How to make fake payments and how to debug them - does there exist anything akin blockchain.info or block chain explorer for them


texts:
I'd like to better understand how a light node can retrieve a complete node. If I understood correctly, I can consider a light node a node which is part of the peer-to-peer network that receives and stores only block headers, which means around 80 Bytes every 10 minutes (of course with some approximations).

Suppose that the light client wants to retrieve the complete block number 1234. I've seen on the documentation the getData message, which other nodes can reply with a block message.

Do you have any hints on how to evaluate how many bytes the light client must send for the getData message and how many bytes must be received? I think it could sufficient to retrieve only one block from the network since the light node can validate if this block is part of its local head-only-blockchain.

Thanks for the support :)


texts:
I understand how the checksum included in Bitcoin addresses can help prevent someone from sending coins to a wrong address. Or at least make it highly improbable.
And I read in answers to another question Stackoverflow about how compliant Bitcoin clients will verify the checksum and prevent you from sending to wrong addresses.
My question is, does a compliant mining software also perform this check when validating transactions?
Thanks!


texts: Using a bitcoin library to create digital signatures in TypeScript/Javascript

texts:
I have been trying to sign my transactions with a digital signature for the past few days but seems that libraries in bitcoin, as far as to my knowledge do not provide a simple way to sign the transactions with digital signatures. I have been trying to use bitcoinjs-lib to achieve my result.
Bitcoinjs-lib came out with a new way of signing transactions with the class Psbt (partially signed bitcoin transaction) and I have been trying to serialize the unsigned transaction and then  create a signature with the unsigned transaction and then finally sign the transaction with the signature.
These are the steps that I have followed, can someone please guide me as to where I might be going wrong and what to do next?
I have created a new address say: bc1qjkg99q654997uz5lxanjugzz2hfwum7ph9fcvw, with the compressed public key as 039b219ff489f9f5d3c674602e2280cc803f068f07db7295c7d2a2f9d51844cc45 (in hexadecimal representation).
Script used is P2WPKH.
Say I want to transfer funds to 3HmEiQfaghizrNNn3tt5ydzvejLeYMzbD1, with some amount of BTC.
Now I want to create an unsigned transaction so that I can generate a digital signature and then sign the transaction.
This is how I proceeded:
First I created a payment object like so:
function createPayment(type, keys) {
        const network = bitcoin.networks.bitcoin;
        const payment = (bitcoin.payments)[type]({
                pubkey: keys[0].publicKey,
                network,
        });
        return {
                payment,
                keys,
        };
}
.
.
.
keys = [{ publicKey: Buffer.from('039b219ff489f9f5d3c674602e2280cc803f068f07db7295c7d2a2f9d51844cc45', 'hex') }];
const p2wpkh = createPayment('p2wpkh', keys);

Now I maybe going wrong here...
I then proceeded to create an input data object like so (maybe I am missing scriptPubKey, if so how to derive it in a situation where you are not connected to the internet?)?!
        const psbt = new bitcoin.Psbt({ network: bitcoin.networks.bitcoin })
                .addInput(inputData)
                .addOutput({
                        address: '3HmEiQfaghizrNNn3tt5ydzvejLeYMzbD1',
                        value: 2e4,
                })

Can someone guide me on how to proceed or where to change the logic?
Also if I understand correctly all unspent inputs (if I have multiple) would need to be signed separately, so do digital signatures need to be created separately and then sign the inputs one by one?
How to create a hash of the an unsigned transaction from PSBT? Also if there is any other way to do this using bitcoin-core or some other library please let me know. I would be much grateful.
Also please tell me if this does not make sense at all. I think I might be a little confused on how I should use digital signatures here.


texts:
Can anyone help me to find out the format of rev*.dat file?

There is an array with [F9BEB4D9 + 32byte number + variable raw data] for each element.

What is that 32b number? And may be how to understand what is the other variable data?


texts: How to convert fee_estimates.dat into a human-readable format?

texts:
I would like to take a look inside fee_estimates.dat to understand a bit better how the RPC command estimatesmartfee works. However, when I open the file in a text editor, the content is not readable.

Is there a way to read the information inside fee_estimates.dat?


texts: Transferring funds from a cold wallet to a hot wallet - on chain or off chain?

texts: I've seen two techniques when it comes to transferring funds from a cold wallet to a hot wallet.  In one technique the cold wallet signs a transaction (offline of course) and transfers funds to the hot wallet using an on chain transaction. In the second technique, the PK itself is transferred from the cold wallet to the hot wallet. Besides for saving on transaction fees with the second approach - is there any benefit of one technique over the other? Or are they basically equivalent form a convenience/security standpoint?


texts: Will people not spending their Bitcoin cause Bitcoin to fail?

texts: Everyone I know that owns Bitcoin (including myself) seems to plan to sit on it until it becomes widely accepted/used and the price sky rockets to a ridiculously high value (100000 dollars each). It's great that the number of merchants accepting Bitcoin is increasing but if no one is paying with Bitcoin because they are waiting for the price go up, won't Bitcoin inevitably drop in value?


texts: re : minimum sizes of transactions and blocks

texts:
I see there's a similar question provided here:

What are the minimum sizes for transactions and blocks in Bitcoin?

But the answer provided might be not correct in the light that "A valid transaction requires at least 100 bytes" or am I missing something here ?  See checklist #6.

If relevant to minimal transaction size, my question then would be, was this standard introduced after or before the answer provided.
Also, did the answer provider care about distinguishing between valid transactions and invalid transactions ?


texts: What are the segregated witness tradeoffs?

texts:
Segregated witnesses sound like a win in a lot of ways, I'm just trying to understand how they apply to scalability. If I understand correctly, there is a second Merkle tree of witnesses mirroring the transaction data. The witness tree's root is committed to in the coinbase, but otherwise this second tree lives outside of the block.

Don't the witnesses still have to be relayed to other nodes to validate? Why is it acceptable now to send more data, but raising the block size was dangerous, and exclusionary of nodes on slow connections before?

Also, if witnesses are outside of the block and prunable, how will a fresh fully validating node get up to date? If a smaller subset of full nodes hosts all witnesses, does that trade off security for amount of transactions in a block?


texts: Bitcoin Core gives error "Error reading from database, shutting down" during first time setup

texts:
I have recently installed Bitcoin Core on my Gentoo system via portage. During the first time setup, the initial download stopped at roughly 30% completion and gave the error "Error reading from database, shutting down". Restarting the program would set the progress back a small amount and restart the download, but it would always fail at the same point. I tried running Bitcoin core with the -reindex flag, and after doing so the download made it farther - to 43.81% - but then gave the same error. As I mentioned before, this is during the first time download of the blockchain; I've never used the program for anything else.

Some points that may be important:

I have more than enough disk space.

I dualboot with Windows, and as such the first time I ran Bitcoin core I had a clock skew. It ran for a minute or so before I realized, closed the program and corrected it. I haven't run it with a clock skew since.

It almost always fails on the same point - in this case, at anywhere from 134577 to 134579 blocks remaining. After restarting, it starts the download at 134609, giving a difference of roughly 40 blocks. (As I mentioned before, however, it failed much earlier before reindexing.)

I installed through portage, and as such I have no reason to believe that any dependencies are missing.

Does this look like a hardware issue? I've yet to do any disk tests other than a simple ram test, which returned no issues. Thank you in advance.

EDIT

Here are some basic specifications for the machine in question.

CPU: Intel core i7 3930K, 6 core

GPU: Nvidia GTX 980 (open source drivers)

16GB of RAM, 8GB of swap

Kernel Version: 4.14.52-gentoo


texts: Bitcoin Exchanges for Self Directed IRA LLC

texts:
I have a self directed IRA with control through an LLC for funding purposes. Has anyone registered with a bitcoin exchange in the name of their LLC and if so, which exchanges are user friendly for setting up such an entity?

Thank you in advance!


texts:
Good day

Is there a way that we can report a Bitcoin scam? I was recently scammed over R200000 therefore I would like to report the person and the platform to alert people of her fraudulent platform.


texts: Is history reversal a concern if the absence of attackers is assumed?

texts:
As described in the Bitcoin paper, the Bitcoin network may temporarily diverge, or "fork," as nodes may work on different blockchains.
The network reconverges, however, as a node will always continue working on the longest blockchain it learns about.
This opens up the network for history reversal, since transactions that are part of a discarded blockchain might not be part of the longer, universally accepted one.
This is typically discussed in the context of an attack scenario.
E.g., many vandors wait for a transaction to be confirmed six times until accepting it as payment.
This is presumably due to the Bitcoin paper stating that, assuming an attacker controls 10% of the network's processing power, waiting for six confirmations puts the attacker's success probability in the order of 0.1%.
However, in a scenario that assumes the absence of attackers, would there still be the need to wait for some number of confirmations?
After all, history reversal is an intrinsic part of proof of work -- facilitating network convergence -- even if it is not abused in order to double spend, right?


texts: I lost my uncle few Weeks ago due to the covid 19 and I have his wallet

texts: I have my uncle wallet and I don’t have his private key can anyone help


texts: After downloading bitcoin source from github I'l try to open it in Netbeans for Mac. Please tell how to open all bitcoin project for run it with breakpoints in IDE?


texts: Why did my transaction not include the fee?

texts:
I moved 0.30 BTC from Bitcoin Wallet for Android to a new Coinbase wallet I had created, I have waited and waited – now it’s been 29 hours.

It turns out the transaction doesn’t include a fee, which was why it’s taking so long. I was surprised, because Bitcoin Wallet for Android doesn't have a feature to opt out of sending a fee. I don’t think any android based application wallet has? I checked right through the app and the fee is automatically taken every transaction (as it should be IMHO).

So, how come this one transaction did not include a fee, while each of the past 50,000 transactions I've done have, including two since this incident using the exact same wallet to the exact same Coinbase wallet in an attempt to force my other one to be confirmed.

I've spoke with the Bitcoin devs and it’s not a bug with the wallet, or if it is, then this is literally the only case this has happened in.

Why and what could cause this? How long do I wait? Is my 0.30 coins in limbo never to be seen again? Is there any way I can just cancel this transaction and try again? Is there any way to manually pay the fee? Or confirm it myself somehow?

Coinbase says my 0.30 BTC is pending and will be confirmed in 30 minutes; it has said that the whole time.


texts:
I've been reading a lot of docs on BTC transaction structure, and find it really confusing when it comes to SegWit story.
So, the very first thing is, if I've P2SH-P2WPKH address, does it mean that all outputs to this address (UTXOs) are by definition segwit UTXOs ?
In the docs (https://bitcoincore.org/en/segwit_wallet_dev/) it says:

Signature Generation and Verification for P2SH-P2WPKH
For spending of non-segwit UTXO, the signature generation algorithm is  unchanged.
For spending of P2SH-P2WPKH:

The scriptSig MUST ONLY contain a push of the redeemScript

...

So, either all UTXOs for P2SH-P2WPKH address are segwit ones, or they are SegWit if SegWit transaction was made to this address (which does little sense actually for me, as then arises chicken-egg problem).
Why they wrote this "For spending of non-segwit UTXO, the signature generation algorithm is  unchanged" part, what case it covers? If you've P2SH-P2WPKH address but you are taking some foreign UTXOs to spend(that were directed not to your address)?
Another not clear part are scripts for P2SH-P2WPKH address.
So here is my example address:
3MxYPuvEcKDdaEG1xoGyddqir6C4b66MJi
And here is transaction that was made to it:
https://blockchain.info/rawtx/6c2806587d5cdb3f0363e43f60b4a84baf37b3012fbde02f108f4eb1bdcede42
Based on it pubKeyScript of output is a914de523116b281c96ff1e204ea2ff435b75d48f0de87 which translates to:
OP_HASH160 de523116b281c96ff1e204ea2ff435b75d48f0de OP_EQUAL

So, de523116b281c96ff1e204ea2ff435b75d48f0de is hash160 of redeem script.
The only redeem script that matches this hash I've found is following:
0 389f26d8d616cb96df1cfd6d9989248a30b933b9

Which is witness v0 program script(0 sha160sha256(pubkey), so it means I've to create SegWit transactions, right?
I tried making P2SH ones and it says that I've non-nominal pushes in the redeem script, that's cause of "0" push there I believe.
I feel that doing something wrong in this part, and as a result signing either wrong thing or in a wrong way...
Very appreciate any explanations.


texts:
I'm making a bitcoin solo miner, what is the URL to get the current block header a with JSON call? I also need the URL where the work will be sent if a valid solution is found.

Right now I'm trying to understand how the solo mining process works. From what I've found on the internet, to get and receive data from the bitcoin network I need to make some JSON calls, but I don't know the URL and the format. If I understand correctly, this is how I think the miner works:

Get header from the network
Find the nonce that makes the header hash to a low enough value
Send the data out to the network
If the nonce is correct get paid

Am I correct? Are there any tutorials or can someone give me an explanation of how this process works?


texts: Is it possible to make a paper wallet out of a bitcoin-qt wallet?

texts:
I have a single bitcoin address with all my savings on it. I want to make a paper backup for precaution (as if my hard drive somehow exploded) with that specific address. Is that possible?

Keep in mind that I want a physical backup but at the same time I want to be able to manage the wallet from bitcoin-qt.


texts: Please Help! !Unconfirmed transfer for over 12 hours using recommended fee?

texts:
I have been waiting for over 12 hours for this transaction to confirm:
https://blockchain.info/tx-index/76621daadefc4b5756e23ada1358ca4544683a6af0edda1766b1713ed9224188?show_adv=true
it is unfortunately pretty important. I am using multibit and using the recommended fee, perhaps I need to update. Will mulit bit keep resending the transaction or should it cancel at some point?


texts: Can ASIC or FPGA boards be used to mine Litecoin?

texts:
I know that Litecoin was designed to be mined with a CPU but then someone figured out how to mine it with a GPU.

Has anyone figure out how to mine Litecoin with an ASIC or FPGA boards, and if not is it conceivably possible? (and by that I mean would it be more effective)


texts:
I have some transactions pending in the memory pool, how do I empty the memory pool without restarting bitcoind ?
I would like the transactions to be cancelled also.


texts: `createpsbt` RPC call doesn't provide PSBT inputs & outputs

texts:
I'm attempting to create a PSBT using RPC:

bitcoin-cli createpsbt [[{"txid": "1d76879500aecafde541770b5d44ccec5955b4c1a455fae446bf1df7b5ea43e9", "vout": 0}, {"txid": "e5a8dfa9459ac154fe62652e1d43049dae13f11815da36cc32881e27917a0dff", "vout": 1}], [{"bcrt1qnv3tl3z9cll9faqf79ppfn3rrp7pn9wwmq04p5gqgqtxg55xfxuslkyk94": "0.20000000"}, {"bcrt1qa4h6amsgyc878k094grqh6ktmgvp97dt6et9cy5hjmyxlgd9q63q3p6hch": "1.79900000"}], 0, true]

This is the PSBT I receive in return:

cHNidP8BALICAAAAAulD6rX3Hb9G5PpVpMG0VVnszERdC3dB5f3KrgCVh3YdAAAAAAD9/////w16kSceiDLMNtoVGPETrp0EQx0uZWL+VMGaRanfqOUBAAAAAP3///8CAC0xAQAAAAAiACCbIr/ERcf+VPQJ8UIUziMYfBmVztgfUNEAQBZkUoZJuWAOuQoAAAAAIgAg7W+u7ggmD+PZ5aoGC+rL2hgS+avWVlwSl5bIb6GlBqIAAAAAAAAAAAA=

When decoded, the inputs and outputs sections of the PSBT are empty. Why is this? Bitcoin Core should know everything necessary to fill these sections out. Why doesn't it?

bitcoin-cli -regtest decode <psbt>
{'inputs': [{}, {}],
 'outputs': [{}, {}],
 'tx': {'hash': 'fd88b50ec52948dcf04b0d802000b325f960f3333cff8bf7a274273c9d7e2ed7',
        'locktime': 0,
        'size': 178,
        'txid': 'fd88b50ec52948dcf04b0d802000b325f960f3333cff8bf7a274273c9d7e2ed7',
        'version': 2,
        'vin': [{'scriptSig': {'asm': '', 'hex': ''},
                 'sequence': 4294967293,
                 'txid': '1d76879500aecafde541770b5d44ccec5955b4c1a455fae446bf1df7b5ea43e9',
                 'vout': 0},
                {'scriptSig': {'asm': '', 'hex': ''},
                 'sequence': 4294967293,
                 'txid': 'e5a8dfa9459ac154fe62652e1d43049dae13f11815da36cc32881e27917a0dff',
                 'vout': 1}],
        'vout': [{'n': 0,
                  'scriptPubKey': {'addresses': ['bcrt1qnv3tl3z9cll9faqf79ppfn3rrp7pn9wwmq04p5gqgqtxg55xfxuslkyk94'],
                                   'asm': '0 '
                                          '9b22bfc445c7fe54f409f14214ce23187c1995ced81f50d100401664528649b9',
                                   'hex': '00209b22bfc445c7fe54f409f14214ce23187c1995ced81f50d100401664528649b9',
                                   'reqSigs': 1,
                                   'type': 'witness_v0_scripthash'},
                  'value': Decimal('0.20000000')},
                 {'n': 1,
                  'scriptPubKey': {'addresses': ['bcrt1qa4h6amsgyc878k094grqh6ktmgvp97dt6et9cy5hjmyxlgd9q63q3p6hch'],
                                   'asm': '0 '
                                          'ed6faeee08260fe3d9e5aa060beacbda1812f9abd6565c129796c86fa1a506a2',
                                   'hex': '0020ed6faeee08260fe3d9e5aa060beacbda1812f9abd6565c129796c86fa1a506a2',
                                   'reqSigs': 1,
                                   'type': 'witness_v0_scripthash'},
                  'value': Decimal('1.79900000')}],
        'vsize': 178,
        'weight': 712},
 'unknown': {}}


texts: Practical interpersonal address exchange

texts:
How can addresses be exchanged practically & efficiently between two users?

Visually copying & keying them is impractical & faulty.


texts: How to verify locking and unlocking scripts?

texts:
I've selected an arbitrary transaction id and retrieved its associated transaction details using the blockcypher explorer as follows:

from blockcypher import get_transaction_details
get_transaction_details('0db8ca471c0e0fd3ce6f24197d9a9cec9647fd3df5ab6aa2e174e0ea85949146')

The output is the following python dictionary

{'addresses': ['17uP1g6ppdKVonMQWJ2ojeUZ8r9AhH2tgf',
'19jaGQFE39oH71WdR1ZJjpajjnP8tWNZdv', '1PJwNGYympRP3kJ8hqkY2ayHDVHokrASrv'],
'block_hash':'0000000000000000032ba4f95d39b86b2cc24c27e3c0d3201070945faf890e0d',
'block_height': 419922,
'block_index': 1,
'confidence': 1,
'confirmations': 186323,
'confirmed': datetime.datetime(2016, 7, 9, 4, 3, tzinfo=tzutc()),
'double_spend': False,
 'fees': 311300,
 'hash':'0db8ca471c0e0fd3ce6f24197d9a9cec9647fd3df5ab6aa2e174e0ea85949146',
'inputs': [{'addresses': ['19jaGQFE39oH71WdR1ZJjpajjnP8tWNZdv'],
'age': 418553,
'output_index': 0,
'output_value': 44695270,
'prev_hash':'81b3bcc34490facea42a729ae166f599c7933501273010d0eb0c2a0efe190153',
'script': '483045022100e664861517c0ea91df7e4bde7001b7cda6b034a7f4c4c6e622b681a57bf72c4102207b02fa4046f6ca5c180aa60ee57e67fff4e82c09a7e60515b15a989cd4bd5d3a012103017e89c4294b1ca99533b424c367db4f18747c0cacad393e3fb103640bcdb2ce',
'script_type': 'pay-to-pubkey-hash',
'sequence': 4294967295}],
'outputs': [{'addresses': ['17uP1g6ppdKVonMQWJ2ojeUZ8r9AhH2tgf'],
'script': '76a9144bb8c253f24fa707f6796a0b3c542f78c94b4dcc88ac',
'script_type': 'pay-to-pubkey-hash',
'spent_by': '43a771f414804dcc5ef5b4a577961a1e694ce8f477b391da1a404a600a14c8e3',
'value': 18695900},
{'addresses': ['1PJwNGYympRP3kJ8hqkY2ayHDVHokrASrv'],
'script': '76a914f4b738bc3ee9ebad027381304b2b3e81a618a60488ac',
'script_type': 'pay-to-pubkey-hash',
'spent_by': '0ea2858001f752c4eb7d0bba88568e9dfb25cdcc76adab42bc1ccfbf27c8bda1',
'value': 25688070}],
'preference': 'high',
'received': datetime.datetime(2016, 7, 9, 3, 41, 4, 370000, tzinfo=tzutc()),
'relayed_by': '80.249.197.154:8333',
'size': 226,
'total': 44383970,
'ver': 1,
'vin_sz': 1,
'vout_sz': 2}

Now, from what I understand, the input script should be

<sig> <PubKey>

and the output script should be

DUP HASH160 <PubKHash> EQUALVERIFY CHECKSIG

In the above transaction details I see that there is one input script and two output scripts, which the blockcypher documentation says are raw hexadecimal encodings. However, when I put the encoding under the "scripts" fields into a hex decoder I get nothing that makes sense. My questions are:

1) How can I decode the strings in the "scripts" fields of the transaction details dictionary to see the actual scripts. When I do, will they follow the format I outlined above?

2) How can I verify that the unlocking (input) script, indeed works on the locked (output) scripts? Is that possible using only the transaction details I have generated above?


texts: Can I have a fee rate lower than the one suggested by estimatesmartfee economical

texts:
I know what the inputs and outputs are, the weight of the transaction. At the moment I have $1400 divided into addresses (of my own bitcoin-node).
When using sendtoaddress, 24 blocks, ECONOMICAL he wants $400 commission. Is there anything I can do now?
Can I somehow transfer money locally to 1 address?
UPD: estimatesmartfee return
bitcoin-cli estimatesmartfee 24 "ECONOMICAL"
{
  "feerate": 0.00105724,
  "blocks": 24
}


texts: What is the cheapest fee based bitcoin / altcoin mixing service to keep myself anonymous and from being tracked?

texts:
I purchased some bitcoins from Coinbase and I want to give them away to friends for their birthday this year, but what I'm afraid of is if they end up buying stuff on the dark web with it. Last thing I want to deal with is having to explain to the police it wasn't me. I know there a bunch of mixing services to help protect people from being tracked or traced back to the original account, but which one is has the cheapest fee?

I know the fee pays for the person running the mixing service, but is there such a thing as a decentralized bitcoin mixing service that doesn't take a fee?


texts: What do "support" and "resistance" mean?

texts: I'm still very much a newbie to all this and would like to get some help.


texts:
LargeCoin announced their ASIC mining technology back in March 2012, with an estimated delivery of July 2012.

"ttul" in Bitcointalk, who made the announcement, also said "Expected delivery is July 2012. If we miss our delivery deadline, then we will return deposits in full."

Have they delivered any units? Did anyone order any? Has there been a more recent comment anywhere on when they will deliver?


texts: Bitcoin core wallet - got 0 balance after transaction

texts:
I did a test lightning transaction by sending 0.00001 btc to some exchange with using bitcoin core 0.16 (downloaded from bitcoin.org and installed to dedicated pc) and... it took the rest balance of my wallet which was sent to unknown address.

Here is the transaction: https://www.blockchain.com/btc/tx/5d6111094be588c180661cb2f0ee21a7de28a7dea8641cb9921b4aada3175dd5

As you can see there is 0.00001 btc sent to some exchange wallet and also 0.00948723 is sent to unknown address (exchange says it's not belongs to them).

What was the second transaction?


texts: Is a privacy preserving coin mixer possible on Liquid?

texts:
My thoughts:
Liquid uses confidential asset and tx. Therefore the asset type and amount is hiding from chain analysis. However the utxo's still carry history. This history could potentially lead chain analysers to form educated guesses of the assets. This would be far more difficult if a coinjoin mix (batching really) had occured. Coinjoins (batching) with confidential assets and tx would be extremely powerful.

My guestion:
If a 3rd party gathered people's txs and batched them into one single tx. Would this 3rd party be able to see every input and output's asset type and amount? Or is there some fancy crypto where the 3rd can construct the tx without knowing any of that?


texts: Understanding skip pointers in BlockIndex in bitcoin sources

texts:
From source code:

/** The block chain is a tree shaped structure starting with the
 * genesis block at the root, with each block potentially having multiple
 * candidates to be the next block. A blockindex may have multiple pprev pointing
 * to it, but at most one of them can be part of the currently active branch.
 */
class CBlockIndex

//! pointer to the index of the predecessor of this block
CBlockIndex* pprev;

//! pointer to the index of some further predecessor of this block
CBlockIndex* pskip;

Can anyone help me understand the need for skip pointers, perhaps with a picture? Why should we track this? The comment says some predecessor . When and where are these useful?


texts: How long does it take to find a UTXO in UTXOs set?

texts:
to validate a TX, the miner or full node should first find the UTXO. How long does it take to find a specific UTXO in a list of UTXOs set?

Right now, there are around 100 million of UTXOs. Then, how long does it take to find a specific UTXO among 100 million UTXOs? I need to know the accurate time.


texts: Is it possible to keep bitcoind running with the blockchain synced up to only a certain height?

texts: I am currently using bitcoind to do some transaction analysis on a small part of the blockchain. However, after the local copy of the blockchain reaches the -stopatheight value, it quits. Is there a way to keep it running at that height? Or do I need to sync the full blockchain to keep it running? I want to keep it running so that I can run the bitcoin-cli and perform a few RPC calls


texts:
I have been recently playing with the testnet (using bitcoin-qt -testnet). I have been able to mine a few coins and do some test transfers, but I have found some problems:

The coins appear sent, but a second, receiving client never saw them.
When launching the client some days later the mined coins (and all the blockchain data) have vanished.

I have read we are now in the third testnet. I have checked my .bitcoin directory and there are two tesnet directories, one named testnet and a second called testnet3.

Am I connecting to two different networks?

I thought there was just a testnet, but now I have my doubts. If there are many testnets or if the testnet can change, how can I make sure I can still check my old transactions?


texts:
I am not an expert on bitcoin, so please pardon me for dumb questions.

1, Will bitcoin not work any more in the far future? I think, not sure, every bitcoin transactions are recorded into memory or a block, and since this memory is so limited and hard to get, let's assure that your memory card is full or corrupted, then your expensive digital camera simply won't work anymore. So I think bitcoin owners pay too much on their memory card and forget about that the real value is in the camera.

2, What are the differences between a bitcoin and a memory block? I think they are the same thing, but on the other hand, I can spend a bitcoin, but I don't think I can spent a memory block.

3, I notice a payment that I sent days ago still haven't got confirmed. I sent 0.003 BTC and the fee I pick is 0.0003 BTC which was all I got in my wallet. That is too slow. I understand why, but I just can't accept it. So my third question will be what happen when everyone pick the same "priority" or Sat/b value, how long will it take for a transaction to go through in this unrealistic scenario?

4, It's basic economy, Supply and Demand. Since people are paying priority fee every new day, why would anyone want to process the lower fee transactions at all?

5, Is bitcoin really decentralized? but how can anything be decentralized when it's controlled by a group of people, namely those with a super computer. Well, it sorts of like the internet. Internet is controlled by few huge tech companies, some even controlled by its government.


texts: How to Create a Light Wallet and Light Bitcoin Node, and run it on Mobile?

texts:
For example, instead of using my laptop to run bitcoind...how can I run bitcoind on a smartphone to create a light bitcoin wallet?

I understand hashing may drain battery, but is this possible? If so how?

I read somewhere a client is considered "light" if it doesn't download the whole blockchain, but just communicates by sending headers.

Thanks.


texts: Time locked puzzle for payment in Lightning Network

texts: Currently HTLC's timeout transaction relies on absolute timelock enforced on the script. It allows a counterparty to withdraw the money from the contract if the other party doesn't release the preimage. What would have been the problem if instead of using timelock before the counterparty can unlock its money, the condition is replaced with timelock puzzle? The time taken to solve the puzzle will be same as the locktime of the offchain contract.


texts: Bitcoin sent to Bitcoin Cash address in blockchain

texts: I sent bitcoin to a bitcoin cash address in my blockchain account. Are the coins going to the account and if not what if anything can I do to recover my bitcoins?


texts: On 11/09/2020 I reported to CashApp that a person claiming to be a representative for them contacted me saying that my account was locked and a demo transaction had to be done in order to unlock my account. I was scammed out of $345 via Bitcoin and they said that they can’t do anything about it. What can I do? That was all I had left to my name. I know that company’s don’t care about us common folks but to allow a person to scammed is heartbreaking and disappointing


texts: High level description of modern Lightning network (as per BOLT)

texts: The Lightning network specification (BOLT) differs substantially from the original Lightning network paper (some of the differences outlined in this SE answer). Is there a document with a high-level technical description of the Lightning network as per BOLT? The problem I'm facing is that BOLT is a bit overwhelming, I'd like to see concepts introduced step by step (e.g., types of transactions used, the overall mechanics, etc) before the implementation details.


texts: Why does the decode function of the segwit bech32 encoder/decoder take a hrp (human readable part) as input?

texts:
Looking at the code referenced in bip-0173, specifically for example here:
https://github.com/sipa/bech32/blob/master/ref/javascript/segwit_addr.js

  function decode (hrp, addr) {
      var dec = bech32.decode(addr);
      if (dec === null || dec.hrp !== hrp || dec.data.length < 1 || dec.data[0] > 16) {
        return null;
      }
      ...

I understand that this is an error checking statement, but why check a (user?) inputted hrp vs the decoded hrp from bech32.decode?

Also I'm assuming that the "dec.data[0] > 16" check is to make sure that the byte at index zero doesn't exceed a value of 16, which would be invalid hex.  Is this correct?


texts: In a multi-sig transaction, if one party refuses to sign, what happens to coins?  Are the coins forever lost, or is the transaction voided as if it never was attempted?


texts: What factors can be looked at in order to come to a fundamental valuation of Bitcion?

texts:
I'm wondering if current prices are high or low. Most people I talk try to explain to me how the price chart looks like (just like at the other bubbles, right?)...

Is there any means how we can do more of fundamental valuation (just like for a stock) for Bitcoin? I'm not too much into chart analysis, I want to get a feeling of the real fundamental value.

The only information I found on that the BofA thing that is much talked about: http://www.forbes.com/fdc/welcome_mjx.shtml

Frankly, this doesn't seem to be a very well thought-through fundamental valuation.

Also, I've seen this: http://bitcoin-valuation.org/fair-value-bitcoin-28823/

I would be interested in opinions if these sources are OK to be considered, and I'm also interested what other factors there are to consider.

Thanks in advance for your help!


texts: Bitcoin (and other coin) mining seems very inefficient

texts:
No, this is not a post about the Proof of Work algorithm being a huge waste of electricity, although of course it is.

My point here is that it seems like it's just inefficient in terms of how coins are mined.  Each Pool or Solo miner has the same block, and they each work diligently to find a golden hash.. but they're duplicating each others work.  I'm sure the hashing is somewhat randomized, otherwise the fastest pool/miner would always win if it were a sequential brute force.

Still, even if every pool/miner works from a different, random set of nonces, there must be a lot of duplication of effort.

Consider a mechanism where blocks of nonces are doled out to pools and miners (like a super-pool).  These are like "claims" in the mining sense, in that a pool can "stake out" a "claim" (block of nonces) to work on, so that other miners aren't duplicating the work, and the mining is more efficient and coordinated.

My understanding is that this is how it was originally done via getwork command, and that in 2012 they moved to the getblocktemplate method that was supposed to make things less centralized.  So, I understand that having a single centralized authority to hand out work would be problematic.

So how about a system where each pools/miners broadcasts the work they are currently doing, so that other miners know not to start working on those blocks?  If all stakes have been broadcast, and no block yet found, you would fall back to the current system.

Of course workers would be free to ignore these "claims" because they're really just hints.  Nothing would require them to either listen or send updates.  However, utilizing them could be advantageous to all cooperating miners.  There's nothing inherently "wrong" with jumping another miners "claim" in this sense.

Sure, there are potential problems with this approach.  A bad actor could just randomly broadcast "claims" and cause disruption, but the worst case scenario would be to fall back to the current system.  At worst, it would be no worse than we currently do it, at best it could greatly improve the efficiency of finding a valid hash.

Another possibility is that some pools/miners will listen to these broadcasts, but not broadcast their own work.  This could, in theory, give them an advantage while causing others to do double-work... But this is disincentivized by the fact that miners would overall be better off by cooperating.. enough people cheating the system and you are, essentially, back to the current system.

Just a thought...


texts: Input/Output size for various transaction types

texts:
What are input/output sizes for various transaction types?

I see some numbers like 210 byte for input for p2sh-p2wpkh here (How do virtual size, stripped size and raw size compare between legacy address formats and native segwit?), but curious to know more detailed breakdown of input/output for each transaction types.


texts: How to manually compute a descriptors checksum?

texts:
In the docs it says: The checksum for a descriptor without one can be computed using the getdescriptorinfo RPC.
I would like to build a recovery tool where many descriptors are imported, calling getdescriptorinfo for each is cumbersome. Manually calculating the checksum would save a lot of time and network calls.
Do I just double sha256 the entire descriptor and convert the first 4 bytes to hex?
Thanks :)
EDIT: I found this, seems quite a bit more complex than a double hash... https://github.com/bitcoin/bitcoin/blob/master/src/script/descriptor.cpp#L95


texts: Is it normal for my hardware hashrate to vary by 15% but still achieve the advertised average?

texts:
I have an Antminer S1 and an Antminer C1. They both work as advertised and achieve a three hour hashrate average of 200 Ghash and 1000 Ghash, respectively. However, within any given second they hash within 15% of that average. So the C1 right now is hashing at about 850 Ghash, but I've seen it has high has 1150 Ghash.

I thought perhaps that the S1 did it because it is overclocked. But the C1 is not overclocked. I also think perhaps that my source for the stats might be the problem, which is the Eligius stats page for my miner.

Is this kind of fluctuation normal? Why does it fluctuate like this? Is this specific to Bitmain hardware or does other hardware do it too? If it is not normal, what could be the problem?


texts: How to validate a Bitcoin address is a real one?

texts:
Is there a code snippet that validates a bitcoin address?

I'm looking for both javascript and java snippets. The code should support both testnet and real addresses.


texts: Can receiving money make a transaction fail?

texts:
Scenario: Alice has a wallet A1bz (let's say these are the first 4 characters of the private key in wallet import format so we don't have to deal with too many characters) with wallet address 1A1 and 100 mBTC in it. She also has a wallet A2bz with wallet address 1A2 for change and wants to send 50 mBTC to Bob's wallet with public address 1B1 at 15:00 but only pays 0.01 mBTC fees (as opposed to 0.1 mBTC) which would be the recommended amount. This means that the transaction probably won't go through right away but will have to wait for a few hours.

This means that transaction1 is built like this:

transaction1: (1A1) -> (1A2(49.99 mBTC), 1B1(50 mBTC), fee(0.01 mBTC))

So transaction1 requires that there are 100 mBTC in wallet 1A1.

However, Carlos comes along and sends 1 mBTC to Alice at 15:05:

transaction2: (1C1) -> (1A1(1 mBTC), 1C2(4.9 mBTC), fee(0.1 mBTC))

transaction2 goes through right away in the block which closes at 15:10. transaction1 isn't confirmed at that point in time.

Does this mean that Carlos aborted transaction1? Afaik, the inputs need to be depleted entirely which is why change is needed in the first place.


texts: Does bitcoind send message headers and payload separately in P2P protocol?

texts:
I am connecting to my local bitcoind using TCP and observed the following behavior:

I see many messages where only header is given or only part of the payload is attached. Of course, it could be a bug my code too.

Are the bytes sent in chunks? Which of the following are valid?

|header1|payload1|     (as per documentation, this is valid)
|header1|              (no payload, even though required. Have seen this)
|payload1|             (no header, have seen this)
|header1|partPayload1| (incomplete payload, not sure if seen these)
|partPayload1|         (part earlier header's payload, not sure if seen these)
|header1|payload1|header2|payload2|
|header1|payload1|header2|partPayload2|
|header1|partPayload1|header2|
|partPayload1|header2|payload2|

Note: I am using version number 70002, relay = 1 and services = 0.

EDIT: Generally I wait for the remaining bytes, and most of the times they arrive, but in rare cases, around 2%, some other header arrives. This happens only with tx messages.

EDIT2: Based on the comments below, it seems likely that there is a bug in my code. I'll check and revert.

EDIT3: Was a bug in my code. I was assuming that partial data packets correspond to a single header. There can be multiple headers after the data is complete (in the same packet). This makes sense once I consider it as a stream.


texts: Slow but effective mining as a learning tool

texts:
Most discussion about mining is from the perspective of serious Bitcoin users who are trying to profit from it. I’m curious to try mining, only to experiment and become more familiar with cryptocurrencies. I’m not interested in being profitable over the long term, but I am interested in verifying success, namely in seeing my wallet balance nudge a tiny bit.

How can I best use my regular computer (~18Mhash/s GPU, via this) to mine Bitcoin or Litecoin? Specific questions:

If joining a pool, a centrally coordinated one or a P2P pool?
What mining pool payment system(s) would make the most sense?
I’ve got cgminer operating. Any parameters / tweaks I should use?

From what I’ve read, with a slow hash rate, it’s easy to just waste all your compute time on dead pool shares and whatnot. How can I avoid that? Is there anything else I should watch out for?


texts: How much would cost to mine a block with Google Compute Engine?

texts: Google has opened its Compute Engine and it has a price list. How much would cost to mine a bitcoin block with Google Compute Engine?


texts: When you create a multisig address from existing addresses, do the funds move there?

texts: If you have three addresses, lets say A, B and C and they each have 1 BTC. When you create a multisig address out of the three addresses, will it have a balance of 3 BTC or do you have to send the bitcoin from each address to it for the balance to be 3 BTC?


texts: Is Bitcoin PoW actually SHA256 + Merkle generation? Or have I misunderstood coinbase/append?

texts:
Miners can mutate nonce (32 bits) + time (mutates once a second). This allows for 232 (~4 billion) hashes per second. That's not enough anymore for our ASICs as they perform in the TH/s now rather than GH/s. So we allowed miners to mutate the coinbase transaction, but this requires us to generate a new Merkle tree. This means that a miner needs to generate a new Merkle tree every 232 hashes. at 1 TH/s The miner must generate a new Merkle tree 250 times per second.

TLDR: Is Bitcoin PoW actually SHA256 + Merkle tree generation? And not pure SHA256?

If I'm correct in asserting that Bitcoin PoW is SHA256 + Merkle tree, does this slow the commoditization of ASICs and therefore slow decentralization, as ASICs now must be more complex than if they did with just SHA256 + nonce mutations?


texts: I sent a small amount of bitcoins to my bitcoin core account when I was messing around learning to use bitcoins several years ago. I am trying to access these coins but I never got along to utilizing bitcoin core. My computer is rather bad so it has never fully synced up to the most recent block and my computer likely lacks the space/processing power to do so. Is there a way I can access the public/private keys for that address through bitcoin core and then manage that wallet online? Would anyone be able to walk me thru getting the keys and setting up wallet online?


texts: Is there a list of mining pools' Bitcoin nodes IPs?

texts: Is there a list containing the IPs of Bitcoin nodes owned by various mining pools?


texts: I would like filter spam in a way that people have to pay a very small amount of bitcoins to prioritize very good things or to kill very poor things, to make less casual environment and to encourage good filtering. Later best filterers could be rewarded with bitcoins. Is this possible or does this bloat the chain?


texts:
Someone sent bitcoins to my address

1FGhx3FEJptmr4b8N68ceWbqHdTt7c4Ycz

But when I look at my address now, it has been changed to

1HEt95bb7ngshaQhUqi7LZVrJRxDRHu7ws

Will the bitcoins still arrive at the first address?


texts: HELP: recover my btc funds though all odds against me. someone with Xtra knowledge?

texts:
5 months research and a lot of findings indicating it might be possible. I try askin here, like an last effort and Im not expecting fully fix or so but maybe some tips or information that might help me get my stored btc back finally. First I give "good to know" details and then information from my research and the situation. Probably I will have to give more specific info for best understanding, just tell me.

Details

Multibit HD wallet
last updated around 2016
Unfortunately my pc have been formatted twice
I have had a usb with all backup, wallets etc
Usb is lost
Recovery phrase (seed) is lost since 1.5 years
I have done several reovery sessios with differet software and found a lot of interesting files

=================================================

i have found filenames "key.class(keypar.clas etc), "weird filename"(incorrect).dat files, RSAkey.class and so on I can see they belong to the now los partition that I used for multibit hd files I also recofnze the files from the multibithd.jar container. And my last recovery software i got is very good and iim not suprised if it can find any file im ooking for.

so is there any out there that can help me out complicated dilemma. Is there any key file or something I can use for in some way export my private key? or some way to get my tranwqctions recovered if "transaction file" is recovered? and if not ay help is possible from my questions above. Is there anyone know how to open, concert, export or whatever the content of CLASS files(i knoow something about belongs to java) but my knowledge aout java and the process in java applicatina ia zero but if easy or easy explained I might fix it!

Yeah I know my ownfault, and all that My only excuse is that i lost interest but after reading after reading bitcoin raise in value i got my motivation back:P thans for your time and help!

My question is about..


texts: Is it possible to only mine your own incoming transactions? So you can confirm a Bitcoin transaction (only locally).


texts:
I'm using user "lightning" to start the daemon, but would like to have user "bitcoin" to make the lightning-cli calls. How do I share the lightning-rpc file to do so?

Thanks!
Francois


texts:
I've been using cryptocurrency revenue calculators and have appeared to figure out that for all of the major algorithms, the probability of a hash being valid is 1/(D*2^u) where u is either 0, 13 (weird), or 32 and D is the network difficulty. I used the formula (my_hashrateblock_rewardtime) * 1/D * 1/2^u to find revenue. I believe the following is true:

u = 32 for SHA-256, Scrypt, X11, Groestl, X11Ghost, Lyra2Rev2, NeoScrypt, Blake (14r)
u = 13 for Equihash
u = 0 for CryptoNight, Ethash

Can someone explain this phenomenon? Will the constant part of the probability change over time or will the difficulty adjust?


texts:
The writer of this article https://pastebin.com/raw/jCDFcESz explains that

Sha256('sender') x 2  yields the address    18aMGf2AxQ3YXyNv9sKxiHYCXcBJeJv9d1

I am however getting the address 1DcTtaa37w971TmoafPpE9Pk16xc42YA87

What am I doing wrong?