text:
Is there a plug in for credit card charges to be converted automatically into bitcoin
Is there a trusted payment processor that is secure and is able to do the sequence of actions detailed below?

Accept credit card transactions from customers and apply them to purchasing bitcoin & then
Send the newly purchased bitcoins through a series of e-wallets
Before converting the bitcoins into USD and making a final deposit into the Merchant's bank account of choice

In addition, if there is a more suitable cryptocurrency than bitcoin than I am happy to use an altcoin.

No, and there likely will never be. The reason for this is that bitcoin transactions (and all other crypto currencies as far as I know) are none reversible while credit cards transactions are, for up to about a month at most banks. This means that if someone buys bitcoins with stolen credit card information and you give them the bitcoins, and then a week later the bank tells you the transaction was fraudulent, you will have to return the money, but you are never getting the bitcoins back.
A way around this would be for the seller to hold on to the bitcoins for a month and wait for the credit card transactions to definitely go through before dispersing the coins, but with the price of bitcoin as volatile as it is, I don't see this happening.


text:
How can I safely store and trade Bitcoin and other crypto currencies?
How can I safely store Bitcoin?
Exchanges require me to deposit to trade, is this safe? If I can't trust exchanges, what is the best way to safely store my cryptocurrency and transact it?

There are several ways to store cryptocurrencies, so let's break them down by use-case and safety-level.
Exchanges
There are, broadly speaking, two types of exchanges. Centralized exchanges, such as Bitfinex, Bittrex, Kucoin, etc., and decentralized exchanges such as Etherdelta and Switcheo.
Trading on a centralized exchange requires you to deposit cryptocurrencies before you can trade them.  In this regard, they function as custodial services, and thus come with a very high level of risk.  If the exchange operators steal your coins, or if the exchange gets hacked, your funds may disappear, and there may be very little you can do to get them back.
In general, one should only store coins that they are actively trading on an exchange.  To reduce the risk of loss via theft or fraud, balances that are not being actively traded should be withdrawn to one of the wallets described below.
Decentralized exchanges are less risky, as they allow you to deposit coins as part of your trade, and the proceeds from a trade will typically go directly to your wallet.  However, certain risks still exist, such as:

The site acting as the front of the decentralized exchanges could be compromised, and work to steal your keys
perhaps the contract is a scam and will take your incoming coins, and not pay out the proceeds of the trade.

These risks can be reduced by:

Using a temporary wallet for trades
Only storing coins you are trading in that wallet
Ensuring that you are using the correct decentralized exchange (check the domain, check the contract address).

Personal Wallets
Personal wallets also come in a number of flavours.  We will break them down into three broad categories:

Hosted Wallets
Local Hot wallets
Cold storage, or offline wallets

Hosted Wallets
Hosted wallets, such as exchange wallets, do not give you direct access to your keys.  If the service is down, compromised, or shuts down permanently, you can no longer access your coins.  Do not use a hosted wallet unless you are using another service offered by that company, such as trading.  Ensure you withdraw your funds to a more secure wallet when you complete your exchange business.
Local hot wallets
Hot wallets, in general, refer to wallets where the keys are stored on an Internet-connected computer.  They are designed to quickly process outgoing transactions.   Many services offer a hybrid hosted-hot-wallet, such as btc.com and blockchain.info.  The provider of a hosted-hot-wallet will provide you seed words or private keys which can be used to recover your coins if the service goes down.  Hosted-hot-wallet services also offer ways to easily access your wallet, such as a regular email/username/password account system, mobile apps, 2FA, etc.
Hosted Hot wallets come with several risks.   You must trust that:

the initial key generation is not backdoored.
they are not storing unencrypted copies of your keys.
they will not steal your funds when you are using their web interface/mobile apps, which would naturally need access to your keys to make any transactions.

You are also vulnerable to phishing attacks for the account credentials, domain takeovers, and hacks of their systems, which may be compromised and made to serve malicious versions of their apps that would steal your keys or otherwise drain your accounts.
Many people use these services for their ease-of-use, and a number of (so far) reliable ones exist.  Always be careful when using such a service, and follow basic security measures such as ensuring you use strong passwords, enable 2FA, confirm the website address is correct, use a trusted computer to access the service, etc.
Some hot wallets, such as Bitcoin-qt, Electrum, etc., allow you to run them locally on your own computer. These wallets generate and store keys on your computer, and will typically only require a password to unlock the wallet. They do not rely on centralized servers, and instead may either connect directly to the bitcoin P2P network (or the network of your altcoin), or to second layer P2P networks such as Electrum servers.   While generally more secure than a host hot wallet, these have risks such as :

your computer being compromised and the keys stolen
downloading a malicious version of the wallet client that gives you non-random keys, or steals keys after generating or importing them.

To avoid such attacks, you should only use a trusted computer, and verify the signature and hashes of the wallet client software after downloading it.
Cold storage
Cold storage refers to the most secure type of wallet where the keys are not stored on an Internet-connected computer.  There are essentially two types of cost storage wallet; paper, and hardware.
Paper wallets usually just consist of a private key and public address printed out or otherwise stored on a physical medium that is not connected to a computer or the internet. Creating the private key and public address, in an ideal scenario, would use a peer-reviewed, vetted bitcoin address generator on an air-gapped, recently formatted, trusted computer with a cryptographic-quality random number generator. These requirements are occasionally difficult to meet, but are doable by most people given enough effort. Once generated, coins can be transferred to the address, and the private key can be stored on a piece of paper or a flash drive, or inscribed in a metal sheet, and then stored somewhere physically safe, such as a bank vault, home safe, or even split up into pieces and stored in multiple locations.
These wallets are typically extremely safe, since if generated correctly, they are impossible to compromise without physically compromising the location where the private key is stored. However, they are cumbersome to use, as the key must be physically retrieved and imported into a software wallet before a transaction can be signed.  The signing itself can be done on an offline computer to minimize risk, with the signed transaction verified and broadcast by a separate, online computer.
Offline wallets are typically used to store coins for a long time, without the intention of regularly spending them.  Coins can be sent to the paper wallet at any time without retrieving or using the private key.
Hardware wallets, such as the Ledger and Trezor, are newer takes on cold storage. These are essentially tiny computers than generate and store the private keys, and sign transactions on the device itself. You use them by connecting them to a computer, which then passes an unsigned transaction to the device. The device will then display the amount and destination, and attach the signature after you confirm the details are correct. The signed transaction is then sent back to the computer, and the private keys never leave the device.
The attack vectors here are limited to:

a device flaw
stealing the device + pin
stealing the seed words for the device (make sure you keep these very safe)
tricking someone into signing a transaction without verifying the outputs.

The wallet devices themselves are currently considered quite safe (although an attack was recently demonstrated and patched by Ledger).  Provided you choose a strong PIN and store the seed words safely, hardware wallets are the safest, most user-friendly way to store cryptocurrencies, offering a large advantage over hot wallets and exchanges, and even paper wallets in terms of ease of use.  However, hardware wallets currently do not support all cryptocurrencies, and one may have to resort to paperwallets + hardware wallets to cover their entire portfolio.
General Advice
This advice applies no matter what wallet you opt for, and extends to general computer security as well

Use a trusted computer - Make sure you don't install any untrusted programs that may contain keyloggers or other malware.  If paranoid, get a separate computer for crypto use, and format it regularly.
Verify the hashes and signatures of any clients you download.  All trustworthy crypto software comes with known-good hashes published on the website along with the download links, and often with signatures from trusted developers/community members.  Verifying these hashes and signatures helps ensure the program you downloaded was not been tampered with.
Check where you are downloading a program from - Make sure it is the official site, as many phishing clones exist. Check the domain for character swaps (l instead of i, etc.), check the extension, make sure it uses https, and use a computer you trust.
Use strong, random passwords/PINs for wallets and accounts - Get a password manager, no other way to say it really.
Enable 2FA everywhere you can.  Ideally, use time-based 2FA where available, instead of SMS-based ones, and use a device you trust for saving the 2FA codes.
Always verify the transaction address and amount before sending.  Malware exists that will silently change a crypto address after you copy it, and before you paste it into the wallet.  Verify the address before sending.  Many wallets, such as hardware wallets, Bitcoin-qt, Electrum etc. offer a preview function before signing or broadcasting the transaction. Use this feature to ensure the address and amount matches what you entered.
99.999999% of the time, anything that offers you free BTC, offers to mine BTC for you, offers to double your coins, etc. is a scam - Don't fall for it.
Make backups of your seed words/wallet files and verify them.  Computers or hardware wallets can break, and having a backup is essential.  Hierarchical Deterministic wallets, aka HD Wallets, allow you create a long-lived backup that can restore addresses and keys generated after the backup was taken.  Non-HD Wallets, such as bitcoin-qt in non-HD mode, must be backed up every time you generate a new address.  If you restore an old backup from a non-hd wallet, you will lose the value of cryptocurrencies received after the backup was created.

Go read Raghav's answer.
Here's a shorter answer that amounts to the same but may be more readable if you are in a hurry.

Exchanges require me to deposit to trade, is this safe?

No, you should

minimise the quantity of cryptocurrency you put in their hands
minimise the time it is in their hands

If I can't trust exchanges

They occasionally get hacked, go out of business, abscond or fail in a variety of ways.

what is the best way to safely store my cryptocurrency

In cold storage or an offline wallet.

and transact it?

To exchange some amount of cryptocurrency into some other currency you are probably safest using a large reputable exchange - but I wouldn't store anything there any longer than is needed to perform the transaction.
For other types of transaction, a hardware wallet is probably best.

Your wallet stores the secret (or private) key and your public address to interact with the blockchain securely. There are two kinds of wallets for storing keys:
Cold Wallet (wallet which is not connected to internet):
Cold wallet is an offline wallet provided for storing bitcoins. With cold storage, the digital wallet is stored on a platform that is not connected to the internet, thereby, protecting the wallet from unauthorized access, cyber hacks, and other vulnerabilities that a system connected to the internet is susceptible to.
The most basic form of cold storage is paper wallet. A paper wallet is simply a document that has the public and private keys written on it. The document is printed from the bitcoin paper wallet tool online with an offline printer. The paper wallet or document usually has a QR code embedded on it so that it can easily be scanned and signed to make a transaction. The drawback to this medium is that if the paper is lost or destroyed, the user will never be able to access his address where his funds are.
Another form of cold storage is a hardware wallet which uses an offline device or smartcard to generate private keys offline. The device looks and functions like a USB, and a computer and chrome-based app are required to store the private keys offline. Like a paper wallet, it is essential to store this USB device and smartcard in a safe place, as any damage or loss could terminate access to the user’s bitcoins. Two popular hardware wallets are TREZOR and KeepKey. These are expensive to buy.
Another form of cold storage is offline software wallets on desktop or mobile. They are mostly offline and pretty secure as long as your computer is not hacked.  Electrum, Exodus and Armory are often quoted as the best offline software wallets in this category.
Hot Wallet(wallet that is connected to internet):
Private keys stored on a hot wallet are connected to the internet are vulnerable to network-based theft. These wallets are known as hot wallets. Here all the functions required to complete a transaction are made from online device. The wallet generates and stores private keys; digitally signs transactions using private keys; and broadcasts the signed transaction to the network.
It is considered "unsafe" because hackers have easier access to this than a cold wallet. So a minimal amount is stored on a hot wallet. The exchanges are the type of hot wallets.
Examples: Coinbase and Blockchain.info
Generally as a rule of thumb you should only leave as much money on your hot wallet as you would with a leather wallet that you’d keep in your pocket. Think of it this way, if you were held at gunpoint while holding a leather wallet, then you’d only lose that money in your pocket, and not your entire bank account. If you keep all your money in Coinbase it’s as if you are walking around town with all your money in your pocket.

Wallets like Electrum, Exodus, etc, are not a form of cold wallet, as they hold privkeys and connect to the network. What you have called 'hot wallets' in your answer are actually hosted wallets.

@chytrik, Go to Electrum home page and you will find this:
It keeps your private keys offline, and go online with a watching-only wallet.

‘Cold wallet’ usually refers to a wallet that has never existed on an online computer. You could achieve that with electrum but you would need multiple computers to do so.

source: Stack Exchange

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

sort: votes


text:
How to delete an element of an array in an Ethereum contract?
I am wondering - is it possible to delete a single element of an array in Ethereum without having to create a new array and copying the entire array? Reading some of the documentation, I can't seem to find any good way of doing this.

If you want the operation of removing an element from a list to be efficient (i.e. without having to copy the list), you have to use a different data structure, e.g. a linked list or a mapping with a reverse index. Note that delete arr[ind] does not rearrange the array but only resets the array element.

Refer to the documentation:
delete myArray[arrayIndex];

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


text:
Different ways to encode Bitcoin Address
What are the different ways to encode a Bitcoin Address (both private and public) and how are they calculated? I've heard of things like firstbits, mini private key format, and I`d like to know how does one convert one number into another.

What you're talking about is actually two separate concepts. A "Bitcoin Address" is not a keypair, it does not have public and private components. The Address is derived from the public portion of the key pair and is almost always expressed as a Base58 string.
Firstbits is merely a way to look up addresses. When you enter someone's "firstbits" address at firstbits.com, firstbits converts what you've entered to all lowercase characters and then looks through the block chain to find the first (chronological) occurrence of an address beginning with that string. You can't send coins to my firstbits address of "1enmaku" for example, but plugging that into the search box will produce an address "1EnmakuaAN1WgAK2tUFvmsYcKc3NvH3NML" which is valid.
The others mentioned are all methods of expressing the private key. An address represents a receiving address, but the private key represents the right to claim coins at that address. A private key is a 256-bit number which can be represented in many ways. The most common way is WIF or "wallet import format" which is a 51-character string in Base58 which always begins with the number 5 and has some built-in error checking.
The mini private key format is also seeing some widespread use such as in Casascius' physical bitcoins. Mini private key uses as few as 22 characters of the same Base58 encoding as Bitcoin standard addresses. There are some criticisms that the fewer number of characters represents a smaller number of bits, making these keys vulnerable to brute force attack, but even the smallest of them still represent a substantial amount of entropy.

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


text:
Export a list of addresses associated to blockchain.info account
Is there any straightforward way to export just a list of my addresses I have in Receive money tab?
I would like to easily extract them to keep on the side to occasionally run curl on those addresses to get all unspent outputs for each without going to blockchain.info website and logging in.
I can do a copy-paste and grep whole content for addresses but maybe there is some more reliable way?

You could use the blockchain.info wallet api to get a list of all of your addresses and their balances.  The "Listing Address" endpoint is what you're looking for if you go that route, which is very easily curlable.
https://blockchain.info/merchant/$guid/list?password=$main_password

It won't show archived or deleted addresses, but if you actually have a balance on those addresses you probably wouldn't archive them anyway.
Blockchain.info Wallet API Documentation
You can also export your addresses from the wallet interface by going to the Account Settings > Import/Export > Export Unencrypted.  All of your active addresses are in the big JSON document there.

Thanks. It's a pity that none of both provides same security level as copy-paste-grep as they are opening your account new vulnerabilities. Will open a FR in their repo.

I also faced this problem.
There is a neat trick to only copy a column in firefox http://www.alvinpoh.com/how-to-select-columns-of-text-in-your-browser-firefox/ (Just need to use Ctrl key) . For chrome install https://chrome.google.com/webstore/detail/columncopy/lapbbfoohlcmlbdaakldmmallcbcbpjb?hl=en
Goto Receive Money Tab and in the list use Ctrl with mouse to select first coloumn and voila you have a list of addresses.


text:
Does slippage occur on MtGox when 'Market Order' is unchecked?
If you were to uncheck the 'Market Order' box and buy 10 at 110USD, the order can be partially filled by 1 at 110USD and there are 9 more for sale at 113USD, the matching system would partially fill your order and then wait, right?
Does "slippage" only occur because of market orders?

What's "slippage"?

I think it refers to when you enter an order at one price, but it will end up partially filled by orders at other prices

Better prices or worse prices? If you get better prices, then you are posting a limit order at a value higher then lowest ask, if you get worse prices then you are posting a market order without really realising what you are doing.

Does MtGox support so-called limit orders?

@Lohoris: Prices which are worse than the current lowest ask / highest bid.

@Pacerier: Of course.

@MeniRosenfeld, Are you sure? I think they only support instant-market-price orders and fixed-matching-non-market orders.

@Pacerier: Maybe I'm getting my definitions wrong but according to Investopedia, "An order placed with a brokerage to buy or sell a set number of shares at a specified price or better. Limit orders also allow an investor to limit the length of time an order can be outstanding before being canceled." AFAIK what you do on Mtgox is precisely what is defined in the first sentence. You can't put a time frame on Mtgox, but I think this doesn't make it less of a limit order.

@MeniRosenfeld, That's what I'm saying. We can't even do what is defined in the first sentence. If I put a non-market order to buy at 100 and someone has non-market order selling at 80, the trade wouldn't be executed because the numbers don't match even though I'm offering more money than what the seller wants.

@Pacerier: In this scenario, the trade will execute at 80 (if you go second). When you place a limit order it first tries to sweep current orders. What's the problem?

@MeniRosenfeld, You say the trade will be executed. The problem is that the trade will not be executed. I've asked http://support.mtgox.com and they have confirmed this behavior.

@Pacerier: Mtgox support are not known for being very sharp. It would make no sense to have two compatible orders which are not matched (that would be a bug in the execution engine) and the behavior I described is confirmed by my own experience (before Mtgox had a "market order" checkbox, when I wanted to buy I'd just put a bid with a very high price, and it would execute the existing asks.

No, slippage also occurs because the price can move adversely between your decision to sell and your order's execution on the market. Typically in financial markets the other participants can see a large order and move their limit orders accordingly.
What you're talking about is called "sweeping". This is simply the fact that there are not enough orders at the best price to match a sufficiently large order. If you have a market order you will then end up filling the next price, which will be worse.

Slippage is typically measured against the initial lowest ask / highest bid. If you place a limit order to buy at $110, but as it happens the lowest ask was $100 and due to slippage the average execution price was $105, you suffered 5% slippage even though the execution price was better than your limit.
Of course, in this case your order effectively behaves like a market order. When placing a limit order you will never pay more than your limit.


text:
BTC-e API process
I'm submitting a Sell trade via the API, and the orderid returned is 0. It appears the trade is successful, and the adjusted funds are returned by the response. So it looks like the trade is happening instantly.
I was originally worried about the orders taking a while and having to check to find out when an order is complete. I was planning on setting a timer to look at my tradehistory to look for a matching orderid for the trade that I submitted.
So three questions:
1) Are the orders always completed when the trade call is returned, so I can just skip having to check back on orders and
2) If it does return a non-zero OrderID does that mean the order isn't complete and I need to do the timed checking?
Finally, do these answers apply in the same way to a Buy order?
Thanks for the help. I understand the API well enough, but not how the underlying exchange functions.

I think I've been able to answer my own question. What I did was use the API to place an order that I knew wouldn't success by setting the price really low/high.
Because the order didn't process instantly it returned a non-zero OrderID to me.
Using the API I checked my order list and the order was shown there. So basically, if the order comes back with a non-zero OrderID it's still open for as long as the order still appears in the OrderList.

Yes, but it still is not possible to figure out if the order was completed or not. =( There is not always a correlation between your trade history and activeorders. If you know better, I'd love to hear it.

1) no, the order is not necessarily completely when your trade request is returned. Try posting a limit order that is very far out in the book. You guessed correctly... the order has only been completed immediately if it returns a zero. If it takes longer to be completed, it will be filled without ever returning 0, in which case you need to check your transactions or your active orders in order to know when it gets filled. One of these in combination with monitoring your balances should do the trick. So Jon Stevens is wrong btw because using your balance info in conjunction with your active orders makes it easy to tell for sure.
2) yes.
and yes it is the same for buys.
One thing to note is that assuming you want to implement similar checks on other exchanges, you have to be careful with the conventions of how balances are allocated between your open orders and your regular balance. For example, some exchanges like campbx differentiate between your liquid btc and your total btc, so you can easily see how much are tied up in orders. However, on btce you only have one metric, so when your btc suddenly drop you know this is because you have entered an order. And if you are using balances as flags for transactions you have to be careful not to mistake a cancelled sell order for a buy order, as both result in you btc suddenly jumping up. In order to make this disctintion it will help to monitor both the change in your btc and the change in your usd (or whatever currency you purchased it with) in conjuntion. Both changing at the same time means transaction, only one changing means either btc deposit or cancellation. You need even further flags to distinguish betweent the latter two.
In general I found that even if you don't think it's necessary, you should figure out a way of confirming every action you trigger or expect with exogeneous information from the APIs. Every different interaction with the api has a unique signature in the data (you just have to pinpoint it, sometimes with limited data on APIs like BTC-E), so the best practice is that after you trigger or expect any action, make sure that it is confirmed by some unique signature before you move on. It will make debugging much easier because it ensures that the state of your program really is what you think it is.
Hope that helps.


text:
Blockchain.info Shared Send
Can anyone comment on the trustworthiness of blockchain.info's mixing service (shared send). Also would it be possible for things to go wrong internally resulting in my loss?

Blockchain.info is run by puik, a highly trusted member in the bitcoin community. If things were to go wrong he would right it immediately.

This would have been more appropriate in a comment. Being trustworthy is only part of the equation, the other being competent. Of course he is competent too, but still this isn't much of an answer (not that the question was a great one).


text:
Removing old public keys
I have an 'Electrum' wallet. I found some old public keys and imported them into it and then sent the bitcoins to an address in the main wallet. Now the transactions are confirmed and there are 0 bitcoins balance in the imported keys I presume it's safe to delete those keys from the wallet? Is there any circumstance in which I'd ever need them again? (Assuming of course nobody is going to pay anything to their addresses)

You can delete them with the second click options if you think so.
If you ever receive coins in that imported addresses you won't know if you don't have them imported in Electrum or in other client. Or if you've registered somewhere signing messages with it (like in #bitcoin-otc)
In case you want to keep them you will have to keep a backup of those keys separately by copying the wallet file as they won't become part of your Electrum seed.

Thanks. I won't receive coins on them as they were used once about 2 years ago, and I've sent the balance to addresses managed by electrum. I was 99% sure that if they didn't receive any coins there was no need to keep them but wanted to be sure .:)

I still have a copy of my first Bitcoin address, so... It depends on each person's decision :D


text:
Is bitcoin-qt as PPA really secure? How to proof?
With Bitcoins being that much worth currently, I came to the conclusion of using a unique old computer just for this "use case".
I would like to run Ubuntu with bitcoin-qt (from PPA), but now the paranoia kicks in: what if the client is corrupted? I know that I can check against the MD5/SHsomething, but who guarantees that the client itself is not corrupted due to an error/mistake or even intentionally?
It is said that with PPA, nobody guaratees that the software itself is not corrupted, so I am unsure about transfering quite a lot of money to some software I don't know anything about.

If you're really paranoid (not a bad thing) you can just avoid connecting your wallet-hosting (running the software) computer to the internet and avoid this issue entirely. In the end, though, the Bitcoin client is open-source software; no company guarantees that it will work no matter what source you obtain it from. Caveat emptor.

ok, but is there a way (without internet) to be sure that my current wallet really is valid (and contains the amount of BTC I assume) any more? For this to know, you would need internet, correct?

Armory (an alternate Bitcoin client) has excellent support for offline wallets and superb documentation; I'd suggest you take a look at their page here.

technically the company who develops the software (be it the original source code developers or a deviation of the original) is responsible for the stability. the entire bitcoin system is open source. if you dont want open source, bitcoin isnt for you.

you should ask the Askubuntu.com crowd. which is also a stackexchange site.

I felt this term wasn't obvious in the question, so note that PPA stands for Personal Package Archives.

You can instead directly install from the source code. It is available on the project site along with release signatures.

You might want to do the deterministic build thing and then also check the hashes and pgp signatures for the executable. Help the distributedness of the build process. Next step of course is that you are trusting the Ubuntu repos, which could still completely pwn you. (As any other distro / OS of course.)

@Jannes: Perhaps you should write an answer, I think it would probably be better. :)


text:
Why do many market observers suggest that Bitcoin production costs can serve as the lower bound of Bitcoin’s price range in a bear market?
I read on https://decrypt.co/105251/how-much-does-cost-mine-1-bitcoin:

Many market observers suggest that production costs also can serve “as the lower bound of Bitcoin’s price range in a bear market.

Why do many market observers suggest that Bitcoin production costs can serve as the lower bound of Bitcoin’s price range in a bear market?

A Bitcoin production costs depend on the block era and on how much miner competition.

Thanks Mercedes, good point.

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


text:
What is the "wallet export format"?
The "wallet export format" is mentioned at the Wiki page for Mini private key format, but it doesn't seem to be explained on the Wiki. How does one convert the export format to and from corresponding keys?

As it was explained on the forum, it is a base58 encoded private key with added 0x80 byte at the front and 4 checksum bytes at the end.
More detailed explanation is not available on the wiki, as well as in a new testing suite.


text:
What is the Bitcoin Foundation?
The Bitcoin Foundation launched recently. What is it all about and what are its goals?

Have you followed your own link? Hint: there is a section called "about" on this site.

@StéphaneGimenez yes, I'm just leaving this question out to be answered for other people that might be looking into this.

@ThePiachu You can answer your own question. That behavior is encouraged on StackExchange.   I also like the idea that Bitcoin.SE references the foundation. I cancelled out the downvote with an upvote.

@makerofthings7 Yes, I will get to that once I get back home. For the time being I was too busy to write out a satisfactory answer, so I started with getting the question out.

The Bitcoin Foundation is a non-profit corporation started by some of the most respected members of the Bitcoin community created to accelerate the global growth of Bitcoin. They follow the model of open source bodies like the Linux Foundation, or the Tor Project.
The foundation at the moment consists of five board members. During the first term the board consisted of:

Gavin Andresen
Jon Matonis
Charles Shrem
Mark Karpeles
Peter Vessenes

The goals of the Foundation from their About page:

To standardize Bitcoin - "As a non-political online money, Bitcoin is backed exclusively by code. This means that—ultimately—it is only as good as its software design. By funding the Bitcoin infrastructure, including a core development team, we can make Bitcoin more respected, trusted and useful to people worldwide."
To protect Bitcoin - "Cryptography is the key to Bitcoin’s success so far. It’s the reason that no one can double spend, counterfeit or steal Bitcoins. If Bitcoin is to be a viable money for both current users and future adopters, we need to maintain, improve and legally protect the integrity of the protocol."
To promote Bitcoin - "In the context of public misunderstandings, misinterpretations and misrepresentations, Bitcoin needs to be clearer about its purpose and technology. Allowing the community to speak through a single source will enable Bitcoin to improve its reputation."

Any person or corporation can join the Bitcoin foundation. Asides providing their name and address, one needs to pay their fees. For individual level, those are (effective as of 2012 07 23):

25 BTC for a lifetime membership
2.5 BTC for an annual membership

Companies can also apply by paying the following fees:

500 BTC for annual Silver Membership
2500 BTC for annual Gold Membership
10000 BTC for annual Premier Membership

Each level of membership allows an individual or corporation one vote in each of their respective voting class.

I'm just guessing here, but I would assume those fees are no longer accurate. Edit: So now it's $10 per month or $100 per year.


text:
How can I mine ALT SHA-256 coins using a Bitmain S4?
The bitmain S4 does 2TH/s out of the box with no overclocking.  For many alt SHA-256 coins, this can be 10% - 50% of the entire network hashing power, which would allow us to gain alt coins quickly, especially when the difficulty is low.  However, the S4 does not work with most mining pools except for BtcGuild and Slush's pool.  In fact, I have yet to find any Alt sha-256 pools that it works with consistently.
The problem seems to be in the fact that the version of cgminer the S4 uses does not support vardiff and can only mine at a diff setting of 2048.
Does anyone know of working alt sha-256 pools which have fixed diff ports at 2048?
I'm especially interested in switching pools which can mine several alt coins at max hash rate for the S4 specifically.
Please make sure the pool is working stably with an S4 before posting.

does not support vardiff and can only mine at a diff setting of 2048 That seems curiously specific. Do you mind if I ask how you determined that?

There is a discussion about that limitation here : https://bitcointalk.org/index.php?topic=796839.740  Apparently the manufacturer knows about it too.  Even ckolivas (the author of cgminer) gets into the conversation. He also released an improved version of cgminer for the S4 which is what I'm using, but it still cannot attach to any alt coin pools I've found.


text:
How does a client get the merkle branch of a transaction?
When the Bitcoin client receives a transaction, it checks if the transaction is confirmed. This is done by verifying that the transaction hashes correctly, in the merkle tree, to the merkle root in a block.
How does the client know which block holds the merkle root of the transaction?
After finding the correct block, how is the merkle branch acquired?

There is no way in the current P2P protocol to request a historical (=confirmed) transaction, without requesting the block it is in. Supporting that would require the peer to have a full index of all transactions ever, which isn't necessary for normal operation.
To request a transaction, you will either:

Use getdata MSG_TX <txid> to request a memory pool or recently relayed transaction. In this case, no block information exists.
Use getdata MSG_BLOCK <blkid> to request a full block, in which case you get the block with it, and need to check the full merkle tree anyway.
Use getdata MSG_FILTERED_BLOCK <blkid> to request a filtered block (see BIP37), in which case you can check the partial merkle tree to verify the transaction is indeed part of the block.

So how can a client know which block to request?

Why doesn't my client support the getdata method? Is it a new one?

@summerbulb You requests successive blocks as part of the synchronizing process (you don't fetch blocks in order to fetch specific transactions, they just happen to be part of those blocks), using a getblocks/inv/getdata/block cycle.

@StevenRoose getdata is a P2P message, not an RPC call. You can just the getblock and getblockhash RPC commands to request blocks from the database.


text:
How is the network hash rate calculated?
Miners work on finding blocks but don't sent anything until they find the block.
Considering that, how can sites like bitcoincharts.com display a graph of the network hash rate?

If I flip a fair coin repeatedly, and tell you that I found 1 billion heads, it's (practically) statistically certain that I flipped the coin very nearly 2 billion times. The same sort of extrapolation can determine the total network power based on the success rate.

The hashrate can be calculated from the expected rate of finding a block (144 a day), the actual rate of finding a block and the current difficulty.
So let's calculate the average hash_rate for a single day:
expected_blocks = 144
difficulty = 11187257.461361 # this is on May 22nd 2013
blocks_found = 155 # Also May 22nd 2013
hash_rate = (blocks_found/expected_blocks*difficulty * 2**32 / 600)

The reason we use a day to average out the hash_rate is that taken block by block the variance would be really high and we would not get anything meaningful.
According to WolframAlpha this gives us an averagge hash_rate for the 22nd May 2013 of 86.19 THashes/s. Numbers of course may vary depending on how you chose your interval, which appears to be the reason numbers don't match with the ones on Blockchain.info

I know this answer was given 5 years ago, but why 2**32? I'm presuming it has something to do with the 256-bit hashing function used, but some clarification would be awesome :)

@glowkeeper see https://bitcoin.stackexchange.com/a/30225/60443

Thanks, @JBaczuk! Looks good! I should probably check that answer against mine (https://bitcoin.stackexchange.com/questions/79774/estimated-number-of-hashes), but I'm currently knee-deep in code, so I'll report back later, once I've done some back-of-the-envelope-calc's :)

The network hash rate can be statistically inferred from the difficulty and the rate at which blocks are found. It's just a more complex version of the fact that if you know that someone is flipping coins and heads comes up 800 times an hour, they're flipping about 1,600 coins an hour.


text:
problem with bitcoin software
My following bitcoin comes up with errors which are saying "Wallet (out of sync) and also Recent Transactions (out of sync)"
Is this consistent throughout and will go away or is there a problem?
The port number is currently set as 9050

That's because it's either downloading the blockchain or reindexing the blocks on disk. There should be a progress bar at the bottom.


text:
Validate chain from `valid-headers` to `valid-fork`
The getchaintips JSON-RPC returns multiple branches of the blockchain.
Chain tips can be in various statuses.
The active and valid-fork are already validated chains. There is a valid-header

valid-headers for a chain with valid headers whose corresponding blocks are stored locally, but which haven’t been fully validated

which I would like to turn into valid-fork. According to above info I have the blocks locally so I just need to invoke validation process.
Is there any RPC to perform that task? or any other way?

authors: Иван Андреевич Исайкин


text:
Transaction Output Order
Suppose I generate a transaction with 5 outputs.
Is there a deterministic way to know how the outputs will be ordered on chain (their .n values) or will they simply appear in the order in which I arranged them when created my rawTxn that I signed?

If you create a raw transaction yourself, then that is the raw transaction. Whatever you put in it is exactly what the transaction will be, in the same order.
There are some conventions around output ordering. Some software will randomly permute the outputs; other software uses BIP69 which specifies a deterministic ordering. There is however no requirement to follow either rule.


text:
VirCurEx - Balance vs Available Balance
So I have a VirCurEx account and I moved 1.5 BitCoins over to it... After the transaction was complete (like a day ago) I was checking and the website said "Balance - 1.5" which is correct but then for Available Balance it said "Available Balance - 0.74900001" or something close to that.
So I trade half of my bit coins in for other currencies (PPCoins, NameCoins, LiteCoins, etc.) and when I tried to trade more it wouldn't let me... Even though I have about .76 BitCoins left in the account (and I can withdrawal them if I want) the Available balance says 0.0001 (or something close to that, I'm not looking at it now)
Does anyone know what the difference is?

Figured out I had placed an order to sell half of my bit coins a while back and forgot about it... the order was still in effect thus rendering half of my stock unusable hahaha! All is well now!


text:
Why is 'script' used in a transaction instead of the output address?
I see transactions contain script for each output, but this "script" seems to be deterministically derived from the address associated with the output.
Why does the bitcoin protocol opt for the use of this script-derivative in the transaction instead of just using the output address plainly?

Scripts can be used to do a lot more thing than just pubkeys and signatures. There is an entire Bitcoin script language that can be used to specify things like multisigs, hashlocks, timelocks, conditionals, etc. It's pretty extensive, just hard to grasp and reason about. Such scripts do not map to addresses (before P2SH) so without having scripts in outputs, you would be locked into using only single pubkeys and signatures.

First of all, Script is a stacking programming language in which Bitcoin works. Script is pretty basic and limited for security reasons. For this same reason, Script is not Turing complete.

Why does the bitcoin protocol opt for the use of this script-derivative in the transaction instead of just using the output address plainly?

This is because locking bitcoins up with a script (also known as a smart contract) allows a wide variety of conditions in which specific Bitcoins would be spendable (multi-signature, a date in the future, a simple mathematical puzzle, etc).
There are some standard transactions in Bitcoin:
P2PKH (Pay to Public Key Hash)
P2SH (Pay to Script Hash)
P2WPKH (Pay to Witness Public Key Hash)
P2SH_P2WPKH (This is done to make P2WPKH backward compatible.)
P2WSH (Pay to Witness Script Hash)
P2SH_P2WSH (This is done to make P2WSH backward compatible.)
The script allows to tell the network how those bitcoins can be spent.
So, in the case of a P2PKH transaction, you are locking the Bitcoins to a certain public key which is represented by the address. The address is the base58 representation of the hash of the public key, and only the person who possesses the private key of that public key can spend those Bitcoins.
However, what really exploits the potential of the Script language in Bitcoin, is the standard P2SH. Here, you are locking the funds to a Script program (or smart contract) instead of a public key. So whoever can satisfy the problem in that program can unlock the funds and spend them. It is worth to note that there is a standard inside this standard. A P2SH can be standard or nonstandard depending on certain conditions. The major cases of use for P2SH transactions, however, are multi-signature transactions, and SegWit backward compatibility transactions (P2SH_P2WPKH, P2SH-P2WSH).
P2WPKH and P2WSH are SegWit standards which aim to reduce the fees in transactions, but the principles from above remain (P2PKH, P2SH).

P2PKH addresses existed in Bitcoin v0.1 (along with pay-to-IP addresses, which would fetch a P2PK script from an IP to pay to).

There is also no privacy difference between P2PK and P2PKH (either is equally bad as an identifier). Revealing your public key is not a reason not to reuse P2PKH (reuse is bad for privacy regardless, but it revealing your public key is not an issue).

What is the point of the hash in p2pkh then?

The original reason was likely simply to reduce the size of addresses. Satoshi didn't know about compressed pubkeys, and putting uncompressed pubkeys in there would take 95 base58 characters. A later reason for not reintroducing P2PK is reducing the size of the UTXO set (outputs go in the UTXO set, inputs don't; as hashes are smaller than public keys, this has a slight advantage in that regard).

Also the primary use of P2SH today is not multisig, but backward compatible segwit outputs


text:
How can I import blockchain.dat into bitcoind?
I'm getting the latest torrent and I'm running bitcoind on my linux box. How can I import this once it's downloaded?

Related: Bitcoin qt synchronization problems!

If you are downloading the blockchain from scratch I strongly recommend using the bootstrap.dat file, which allows your computer to simply verify blocks and import them without needing to download for days or even weeks on end.
The main issue with downloading from the network is that your client will only download one block at a time. It starts with block #1 and will not try to download anything except for block #2 after block #1 is verified, and so on. As you can imagine, with network latency this can become a rather painful process, as you have endured.
The bootstrap.dat file is widely available on bittorrent, torrent files can be found here: http://sourceforge.net/projects/bitcoin/files/Bitcoin/blockchain/
Direct torrent link: http://sourceforge.net/projects/bitcoin/files/Bitcoin/blockchain/bootstrap.dat.torrent/download
Downloading the bootstrap.dat file is just as secure as downloading the blockchain from peers, but since all the data is already there, the only latency you suffer between blocks is going to your hard drive and finding the next block.
You simply need to place the bootstrap.dat in your %appdata%\Bitcoin folder, (on linux/unix in your .bitcoin folder). The file will be renamed to bootstrap.dat.old when the data import is complete. Using this, it took me only 4 hours to catch up with the network, as opposed to the 1-2 weeks it took me before reformatting on the same computer.

Only the last paragraph is actually relevant to this question, perhaps you could crop it to that?

On second thought, I highlighted the most relevant part as the other information might be useful to other users.

Copy the blockchain.dat file into your bitcoind directory, and the application will begin processing the file, checking for validity as it goes. Once it parses the entire blockchain file, it will connect to peers to continue downloading more-recent blocks.

If I already have data will I have to remove that first?


text:
Funds from coinbase never showed in my Multibit wallet
I know this question has been asked and answered a bunch of times so I am sorry for doing the same. I am basically a moron when it comes to this stuff and very new to digital currency.
So here's the deal opened an account with coinbase got my funds in there. I tried to use bit coin-qt but that has been syncing for literally 10 days now so I used multi bit instead. Did a small $5 transfer from CB to my MB wallet no problems I even figured out how to send it to someone else after that. Here is where the problem starts I went to deposit more funds from CB to my MB wallet using the same wallet. CB went through the pending process which took about an hour on the CB site it says transaction went through but the funds never arrived in my MB wallet. I tried resetting my blockchain and nothing. So now I see all of the kind folks on here talking about going to the GO function ( I run Mac OS ) or searching hidden files or searching something like ~librara/username/.wallet or something of the sort. So like I said in the beginning I am a moron and know nothing about what that means. Please help me figure out where on my computer that wallet and money went. Oh and bye the way the bitcoin wallet address still shows in my wallets list and its the same address that CB sent the funds to. Thanks in advance for any and all help

Your answer is hard to read as it's a giant block of text. It'd be more readable with proper paragraphing.

Hopefully you understand already that the coins themselves are in no way on your computer -- your wallet is just a key that lets you spend coins that are yours.
Everything you need to verify that you own those funds in question is available in the blockchain (and on your Coinbase account).
Simply look at your Coinbase transaction where it says it sent BTC to your wallet address. Click advanced details if you want the actual bitcoin transaction information. Here you can verify that your wallet address was the recipient of the BTC you sent to it. You should be able to click on the link for that address to see the value being held on it.
If you're feeling paranoid and want to cross-check Coinbase's blockchain data, just head over to http://blockchain.info/ and do a search on either the transaction hash or your wallet's receiving address. You should see the exact same information that you found on Coinbase.
I can't help you figure out how to use Multibit, but needless to say, if you lose the private key stored in your wallet, then you will be permanently unable to access the funds at that wallet's address. I can offer only the following tips based on your question:

Make backups (duh).
Mac OS X is closely related to UNIX (and Linux-style operating systems), where files and directories can be hidden by prefixing them with a dot. Similarly, the ~ character is short for your home directory.
You can view hidden files and folders easily by learning how to use Terminal (really, the ls -a, pwd, and cd commands would be all you need at this point, and are safe to mess around with... but MAKE BACKUPS).
You can view inside hidden directories using the finder by using the Go to Folder command (from the Go menu, or shortcut command-shift-g) and then typing the UNIX-style path of where you want to access. Note that you still won't be able to see any hidden files within this directory.
The ~/Library directory is not prefixed with a dot, but it is hidden by default on new Mac OS X systems. You can still get to it easily by using one of the methods listed above, or by opening the Go menu and then holding option, or if you want it to be visible permanently, navigate to your Home folder and hit command-J (or View menu -> show view options), and then check the box for "Show Library Folder".


text:
Why does Crypto Street have backwards pairs?
I'm looking at the crypto street home page and the pairs are backwards when compared to other exchanges. It doesn't appear to be a mistake because the prices are inverted compared to other exchanges - it just seems odd.

I am the CEO of Crypto Street, so let's get that out of the way. I recently wrote a blog post about this explaining. But the gist of it is that we're taking a page from standard financial markets:

In the foreign exchange market, currencies are displayed as what's
  known as a currency pair. Trades require that one currency be
  exchanged for another, in proportion to the quoted pair. As an
  example, let's consider USD/JPY, which at the time of this post is
  98.74. What that means is that to buy 1 USD, you will need to give 98.74 JPY. Generally speaking, the stronger currency is quoted first so that one can easily understand how many of the quote currency one
  will need to buy the base currency. If we reveresed it, and instead
  quoted JPY/USD, it would mean that to buy 1 JPY I would need to give
  0.01012760785902 USD. That's a lot harder to intuitively grasp than 98.74!

The problem is the notation is inconsistent with, well, math. If you say 98 USD/JPY, it looks like 98 USD per 1 JPY.
That said, this is also an issue on Bloomberg or Yahoo or any financial reporting site that I know of.


text:
destination_tag best practices when integrating Ripple
I'm integrating Ripple with a commerce system, to accept payments to a Ripple wallet.
My understanding is that the destination_tag, an integer, is the only data I can use to track a transaction.  I can specify the destination_tag when I send the user to their wallet, and it will be tracked in the ledger.
If I'm correct this is the only parameter, I'm worried about conflicting destination tags.
Am I correct that if a wallet is being used with my system, it can't be used with any other, as they might use the same destination tag?
When a user of my system specifies their ripple account (wallet), am I expected to query the ledger for all past transactions to that wallet and, if any, throw an error that the same wallet can't be used with two payment systems?
Do I have to store not only the account id, but also the ledger sequence when my system learned the account id, so that I only search for transaction ids after that ledger sequence?

There's also the invoice id field which is larger; it wasn't spec'd for in URI's directed at the "old" javascript client; I don't know if this has been changed for the "new" rippletrade.com client or not.

I need to limit this to the URIs.  I'll keep an eye out if it changes with the new client.

@DaveCohen i am also integrating ripple for my web application. Please tell ,e how to assign tags to the users. i am little bit confused about this stuff. please help

@DaveCohen Please check this question. https://bitcoin.stackexchange.com/questions/72231/how-to-assign-destination-tags-to-users-for-ripple-address

I'm assuming you're only trying to accept incoming payments. And I'm assuming that each payment refers to a specific transaction that you already know about. So, basically, you just need to tell others how to pay you. You shouldn't need any Ripple-specific information from them.
Obviously, you'll need to tell them the Ripple account you want them to make the payment to. And you'll find the payment because you'll be watching for payments to your own account.
The only problem is this -- when you get a payment, how do you know who paid you and why? And the answer is this simple -- every time you ask someone to pay you, give them a new destination tag. When you receive a payment, check the destination tag in your database, and then you'll know who paid you and why.

I believe the questioner understands all that but is building a system others will use and wants to know how concerned they should be about (and how to avoid) conflicting with those other people's own use of destination tags.

Yes, I'm building an add-on to Drupal Commerce that makes Ripple an option on checkout.  I'm concerned a vendor might re-use a wallet that has previously been used with another ecommerce system.  Or, a developer tests the configuration on a local server, then later a live transaction appears to be paid because it generates the same destination tag that the developer's earlier test generated.

One good solution might be to allow them to reserve a range of destination tags, say 50 million of them.

I suppose my module could offset the destination tags by some amount, and avoid collisions between a team of developers working on the same site with the same wallet.  However, the wiki recommends randomizing each destination tag.  So it wouldn't be safe to ever re-use a wallet that has been used with any other commerce system.  (https://ripple.com/wiki/Require_a_destination_tag_for_inbound_payments#Choosing_a_tagging_scheme)

@DaveCohen You can pick a random destination tag within a range of, say, 50 million tags. The main point of randomization is that a destination tag doesn't reveal when it was created or how many have been created between two such tags.

I get that.  I'm pointing out that my software can't detect any difference between a wallet with a safely reserved set of tags versus a wallet with no safely reserved set of tags.  If, say, you're switching your online store from Magento to Drupal, you must use a new ripple account.  Similarly, if you're a developer working on 10 different e-commerce websites, you need 10 wallets (unless each set-up supports a reserved block of tags, and you're careful).  In short, a globally unique tagging scheme is on my wishlist for Ripple.

You could get away with all schemes using random destination tags, I think. But I agree, there's no perfect solution unless all schemes support a reserved tag range.

I will make my answer a little longer than necesary and mention some things you obviously already know in the hopes that the expanded answer will be useful to others as well:

The destination tag should be something that allows the receiving account to perform things like implement "for further credit to..." or to determine which invoice (or other event) a transaction corresponds to without knowing the payer's Ripple address before the payment is made.
As such, it's only meaningful for the receiving wallet. When someone wants to pay using Ripple, you would tell them something along the lines of:

Send payment to
  rrrrrrrrrrrrrrrrrrrrBZbvji
  and use destination tag 1313426242

In other words, the destination tag is something that you must create and give to the user, who will then use it when making the payment.
So how to choose a destination tag? Well, there are many ways. Here are a few options:

Just give out an incrementing number, so the first transaction gets tag 1, the second tag 2, etc.
Use the invoice number generated by the commerce system you are integrating with.

You can read more destination tags and requiring them at the Ripple Wiki.

Now, your question is what to do about conflicting destination tags. Obviously if you're the only one generating tags for a wallet, then you don't have to worry about that - simply don't generate conflicting tags.
My personal recommendation is to require/mandate that a vendor create a new  Ripple wallet, to be used exclusively by your system. This is certainly not unrealistic. In fact, it's a good idea™.

Nik, what you say makes sense.  I only have trouble with the "certainly not unrealistic".  With the new rippletrade, wallet addresses have recognisable names.  It's a shame if I have to switch from ~mycompany to ~mycompany2, just because I switched e-commerce software.  Likewise, if a large team of developers each works on their own copy of a website, they shouldn't each need their own wallet.  To do so is to clutter the ledger.

@nik Please check this question. https://bitcoin.stackexchange.com/questions/72231/how-to-assign-destination-tags-to-users-for-ripple-address


text:
Is there a way to import a private key already protected with the passphrase?
Let's say I have a hot wallet that has passphrase encryption enabled.  Then let's say a large withdrawal needs to occur but the hot wallet has insufficient funds and a transfer from cold storage is needed.
If that is a spend transaction from cold storage, then those funds cannot be sent from the hot wallet until after one confirmation.  So the withdrawal request isn't served immediately and instead possibly is delayed by tens of minutes.
If I have an address that already has confirmed funds, and import that into the hot wallet then that can be used for spending right away.  But let's say I don't want to transfer the private key unencrypted to the hot wallet.  I'ld like to simply transfer the private key which has already been encrypted and import that.
Is it at all possible to do this?

To do that you would need your wallet's encryption key somewhere else to create the encrypted private key. You are probably better off using independent encryption to protect the transfer of your private key, then import it unencrypted.

Jürgen, care to make that comment into an answer?


text:
Optimising the inputs for a transaction
I have a list of unspent outputs.
Let's say: 0.4 BTC, 0.6 BTC and 1.0 BTC.
Now I want to create a new transaction for a 0.5 BTC. How I understand it, it would be best to take the 0.6 BTC output as input, and add 0.1 output as change.
The simpler way would be to just start at the beginning and add up inputs until I reached the desired amount. But that seems stupid...
How is this being done by the usual bitcoin clients?
What's the best way of finding the most optimal unspent outputs?

Every client has different selection criteria based on fees, age of the outputs, and other factors that impact the ultimate fee and priority. Normally older outputs are preferred as they incur less fees. You would probably want the 0.6 BTC output as you'd need 0.0001 BTC for the fee, sending 0.9999 to a new change address.
There's ultimately no "proper" method as this is wallet functionality and not core protocol.


text:
Transaction Malleability in the blockchain
How does a transaction malleability look like in the blockchain? Are there any examples?

Does this answer your question? What is Transaction Malleability?

Here is example: https://blockchain.info/tx/683f45578328242a06bc5c54acbcbe6e70a5435b4561fc8b0570a59ab09f8bfa?show_adv=true
Look at first input script in raw:
4d49003046022100847361c694421bf63ea1b51d8e2189805b161ab3d4cb96ab745a20468dd6c2ea0221009160897652bedfd7c837855d793c32509063338ac7524b8f09abfed761cf16fc014d410004c8dde23708932059bf4491c96794c5412b1182d62d2741e0986cb87276d3053f0b7326155114ad67c04adc60b5a47718fa8744ecb86a001f99da8761113edb24

Look at first byte: 4d (OP_PUSHDATA2). It means, that next 2 bytes contains length of data, that will be pushed to stack. This length = 0x49. But typical transaction does not use OP_PUSHDATA2 command. If transaction was created by bitcoin-qt, it starts with length of data directly:
[4d]49[00]3046....

I take into brackets unnecessary bytes.
So, someone added 2 bytes to signature script, but did not break signature and changed id of transaction. Original tx was deleted from blockchain.info. Next link no longer works: https://blockchain.info/tx/ef74c1cbf0003fc4e96a87a59838f7dd3da488d9d83fec3f270b0d3d7c2bc309?show_adv=true
Look at wiki for more information about scripts: https://en.bitcoin.it/wiki/Script

Interesting analysis of the raw bytes.

The ef74 transaction no longer appears on blockchain.info; your link leads to a message saying "Transaction not found".

Looks like blockchain does not save tx, which is not included in blocks.

@Zergatul, Where did you grab this tx from?

I run parser and found this tx in my local blockchain.

The blockchain cannot contain malleable transactions. The malleable transactions happen before the transaction is embedded in a block in the blockchain.
Essentially, the transaction ID is a hash of everything about the transaction including the signature. The signature signs everything except the signature part (it can't sign its own data). So, two transaction records can have the same inputs and outputs, with (effectively) the same signature, but have a different transaction ID. It is this double transaction ID for the same transaction that can confuse some Bitcoin clients.
After a transaction is incorporated into a block, the malleability no longer matters. When Bitcoin clients try to work with transactions before they have been properly confirmed (by being incorporated in a block several times), problems can arise.

So inside the block the transaction will definitely have the same ID as when it was created?

No, transaction will have another ID. I do not agree with Greg Hewgill, trying to found such tx in blockchain now.

@D-32 When the transaction is created one gets a transactionID, however, the ID can be changed until it is confirmed in a block. If the ID is changed one or the either may be accepted. When somebody expects transactionID A to make it into a block, but transactionId B is accepted, and they just check for the transactionId A they will not find it confirmed. Once the transaction is in a block the transactionId cannot change anymore.

This is dangerously incorrect! The block can be orphaned. And if that block is orphaned and a mutant is in the winning chain, your entire chain of succeeding transactions will jam because the immediate successors refer to the wrong transaction ID in their inputs and the indirect successors refer to transactions that can never confirm. This is precisely the mistake that screwed over high-volume transaction issuers.


text:
How do I buy something from someone with bitcoin?
I want to meet with someone in person to buy an item with bitcoin. What's the best way to go about this transaction?

If you already have bitcoins you might do following:
The best way (or the most common) is to use wallet in your smartphone and do transaction through mobile.

Scan receivers QR code to your smartphone wallet
Send bitcoins
Wait until your transaction receives enough confirmations - can be cheched at www.blockchain.com just by entering your address and finding up the latest transaction. (don't get scared if the transaction doesn't show up within minutes it might get also hours depending on your transaction fees - the higher the fee is the faster confirmation proccess will be) With 0.001 BTC fee the transaction will show up in the next block.
Obtain bought item

In case that you don't have smartphone, bring your laptop to place, where you can acccess internet connection.
You will need to get receivers public address to send bitcoins to - with smartphone you just scan address.
Hope it helps.
If you dont have bitcoins you will need to buy some through exchange or localbitcoins.com.

I think that the best way would be for both of you to have some way of being able to send and receive bitcoins on your phone. In person you could then send eachother the coins, then once the other person gets them, then they could hand you the goods.


text:
How can I move bitcoin-qt blockchain data to bitcoind daemon?
I have a bunch of files like blk00110.dat now that bitcoin-qt (on my mac) has finally updated. I'd like to just move this over to my linux box so I can keep it up and running but the bitcoind program uses a different structure. How can I move this data?

There should be a .bitcoin directory once you install bitcoind on your linux box. Copying those .dat files in this directory should enable bitcoind to read them directly.
Bitcoin-QT is actually using bitcoind under the hood. So it shouldn't be using different structure unless you're using different versions of bitcoind.
Edit: also reading more about bitcoind commands, there's a command to import a file directly. So this should probably be better than directly placing the files in the directory:
bitcoind -loadblock=<file> Imports blocks from external blk000??.dat file

There are a lot of those blk files though. Importing I'd have to do it one by one and that way it probably verifies them so it's slower. I'll try to copy directly to the folder I guess.

If you concatenate all the blk files (in order) and put them in bootstrap.dat, and copy that over to ~/.bitcoin/ - then bitcoind will import it.


text:
What function does Mt. Gox's "Open Transaction" withdrawal option perform?
When withdrawing bitcoins from Mt. Gox, there is an option with a checkbox next to it titled "Open Transaction (6 confirmations)".
What does this do to my withdrawal?
I'm thinking this is probably a mislabeling for an option that ensures that even if the receiving address is for another customer account at Mt. Gox that the transaction will be sent through the blockchain.  Otherwise, if those transactions are handled internally without appearing on the blockchain then it is difficult to prove that a bitcoin payment was sent.

I wonder if it's related to FellowTraveler's Open Transactions library.  See https://github.com/FellowTraveler/Open-Transactions#readme

I just asked on the #mtgox IRC channel, and was told:
06:36 < dooglus> what does the "Open Transaction (6 Confirmations)" option
                 do when withdrawing BTC?
06:48 < Cory> If the Bitcoin address you're withdrawing to is a MtGox address,
              it will use the network and blockchain anyway.
06:49 < Cory> Otherwise, if that option is not checked, they will only internally
              transfer the funds.
06:53 <@MagicalTux> and instantly

So there you have it.
I suggested they should label it differently:
07:13 < dooglus> it would be better to use some different text for that option -
                 like "use bitcoin network even for transfers to mtgox deposit
                 addresses" for instance
07:19 <@MagicalTux> dooglus: it use to be something like that, but people were
                    complaining it was not clear enough

They could leave the text as it is, and put a more detailed explanation (like the old text) as a popup.

Yes, stating "(6 confirmations)" really isn't accurate or helpful.  What if the recipient confirms it after just two?

The (6 confirmations) is how quickly a transfer from one MtGox account to another will be accepted if you tick that box!  I agree, it could be an awful lot clearer.

Even with an "Open Transaction", MtGox is both the sender and the receiver, right? Why don't they accept it without any confirmations? Just to discourage this option (which incurs unnecessary block chain overhead)?

That's a good question.  Maybe they like as many as possible of the coins they control to be at least 6 blocks old to help prevent transaction fees.  You have the option of doing an "internal" transaction which keeps their coins old, so if you decide to go the "open" route, you're the one that's going to wait for the coins to age, not them.  Just a guess.


text:
Which exchanges are Tor-friendly?
Mt. Gox's sign-up page states:

Please be advised that accessing your account via the Tor network
  and/or public proxies may result in a temporary suspension of your
  account, and having to submit AML documents.

Are there other exchanges which do not have such a restriction (e.g. for transfers and account balances below $1K USD for instance?)

BitInstant seems like a nice Tor-friendly option (they even accept deposits in cash): https://www.bitinstant.com/

+1 though it's not exactly an exchange, unless I'm mistaken

Cryptsy is TOR friendly- allowing users to both access the site and maintain accounts via TOR. This is as of 04-08-2014. Conditions may change soon due to "us" accepting USD.

The trick to avoid hurdles when using TOR is to put a VPN in front of TOR. E.g. if you use whonix as OS you have automatically everything routed via TOR. If you order then anonymously a VPN paid with crypto then the VPN doesn't know your id and the webpages don't discriminate you because they don't see that you use TOR. It only makes sense of course if you don't login this way into webpages who know your identity. You might use as well noscript or similar things because a user can easily be identified with data the browser reeals (language settings, OS version, browser version, screen resolution, windo resolution etc. etc.). Or better said they can recognize you on future visits (not necessarily knowing your id unless you use the same environment without TOR/VPN but same environmental data from your browser)

Hitbtc also allows to use it's services via TOR


text:
Any multi-currency accounting ledger that lets me use BTC?
Are there any online or open source (i.e., free, or at least cheap) accounting systems that do multi-currency so that I can record revenues and payments made using BTCs in the same system that I use for USDs?
If not, are there any suggestions for how best to do this?

GNUCash doesn't allow custom currencies but it does have many currencies, so can just choose one that you know you won't be using.

Just found Kashoo.  Freemium, or $10/month.  Haven't used it yet though.

http://www.kashoo.com

Also, what might work, Aqilla:

http://www.aqilla.com/multi-currency-ledger

Infinity PFM (Personal Finance Manager) can read transactions from the Bitcoin.org client:
 - http://launchpad.net/infinitypfm
Ledger:

http://www.ledger-cli.org  <-- Command line only, no GUI.
http://www.reddit.com/r/Bitcoin/comments/155gw5   <--- Writeup

Check out http://my-btc.info, a free page to monitor the portfolio of digital currencies with profit / loss calculation including BTC and many, many other alt-coins.
Diskussions about the tool at the bitcointalk forum: https://bitcointalk.org/index.php?topic=220238.0
Also, I must say that Dario (the webmaster) is a great guy. Unbelievable what has been implemented in the last two months and he is always open to new suggestions.
Thanks and Greetings

Another option is Xero accounting: http://www.xero.com/
It's free(gratis) with an extensive API so you could add BTC transactions if you're programmatically-inclined and supports multiple currencies.
EDIT: Maybe it's not so free

CryptFolio supports multiple currencies and is designed for handling cryptocurrency inventory. The trial plan is free and the paid plans are, in my opinion, affordable.
Disclaimer: I'm the founder of CryptFolio.

Consider using https://www.blockonomics.co. It only supports BTC, they have plans to support more crypto later
You can track multiple BTC address, see history and export transactions for further analysis.

BitBook, open source: https://github.com/C-Otto/BitBook/
The purpose of BitBook is to track your own coins by organizing on-chain transactions and their corresponding addresses. If you are able to spend coins for an address, you can mark the address as owned. In all other cases you can mark addresses as foreign. BitBook helps you identify related addresses and transactions where the ownership status is still unknown, so that you can add the missing information and, over time, create a complete picture of your owned coins.
Beware: There is no export, yet.
Disclaimer: I'm the author.

Yes, check out Bitcoin Transaction Coordinator for NetSuite.  http://www.btc4erp.com.  And there is a free offer to work with NetSuite if you are a startup.
It also has built in pricing for Bitcoin exchange rates and will seamless allow accepting Bitcoin and paying bills.  It appears to be the first fully integrated platform.


text:
When does Blockchain.info show 127.0.0.1 as "first relayed by" for a transaction?
Does this mean the transaction had to come from a Blockchain.info/wallet user (or perhaps someone using Blockchain.info/pushtx)?  Or could this indicate something else (e.g., a node from Tor even)?


text:
Can an unconfirmed transaction that only Blockchain.info shows be manually re-broadcast?
Blockchain.info shows a transaction that was created by Blockchain.info/wallet but for whatever reason the transaction didn't confirm right away and appears to not be getting re-broadcast (perhaps because the transaction is more than a day old now).
Is there a way to recreate the transaction (reconstruct as an identical copy, resulting in the same transaction hash) using just the data shown from the blockchain.info website (the Input scripts and Output scripts from the transaction's view on the site) to construct a raw transaction that I can manually re-broadcast using http://Blockchain.info/pushtx or http://brainwallet.org/#tx ?

Old question, but answer might be helpful for someone.
To get a raw transaction append:
?format=hex

to the transaction URL.
For example:
https://blockchain.info/tx/1b087a7aebdd06740bd4ffefba076562b582a97f02cedf2cd32f53f7eb0b3c8c?format=hex

Yes.
All the data you need to assemble it is there on blockchain.info.
Just follow the TX format and you can do it.
I did it myself, so I can assure you that it would work.
https://en.bitcoin.it/wiki/Protocol_specification#tx

I had a transaction that had taken 90 minutes without being put in a block from Coinbase. I tried getting the raw transaction from Coinbase and submitting it on http://blockchain.info/pushtx but I couldn't get it to parse. If I could have would that have gotten it in a block faster? Here is the transaction: https://blockchain.info/tx/1c12a9f7db650956e3c01d7cd86fe8b4dd281e4d5dfc98f00af90803b158024f

As far as I know, you unfortunately can't find the raw transaction anywhere on blockchain.info. Also, do note that http://brainwallet.org/#tx actually just uses pushtx. Anyway, even if you did have the raw transaction, you couldn't put it into http://blockchain.info/pushtx as long as it still appears on the bc.i website -- it would just reject it as a duplicate. If you did have the raw transaction, you could rebroadcast it through a client -- bitcoin-qt or bitcoind's sendrawtransaction RPC call, for example.
EDIT: You can get the raw transaction from blockchain. Go to the transaction and put ?format=hex at the end of the URL

Are you sure brainwallet #tx uses blockchain.info's pushtx?

It opens a dialog box, asking "Press OK to send transaction to:" and it's prefilled with http://blockchain.info/pushtx. I don't know if you can put other things in there and have it work, but I know that that's what it used by default.


text:
What products, deals or other incentives are available exclusively to those paying with Bitcoin?
Occasionally I'll see an offer that is available only to those who pay with Bitcoin.
What products are sold in which no other payment method is offered, or other offer extended only to those paying with bitcoins?

The only payment method for Bundles through Nestor Games is in bitcoins.
Items in BitPremier's showroom are available only when paying with bitcoins.  Since some of these items are not otherwise available this might indicate Bitcoin exclusivity.
Author James Altucher made Bitcoin as the only payment method for his new e-book (for a limited period of time)


text:
Which mobile apps allow me to redeem a private key from a QR code?
Which mobile apps will let me scan a QR code of a private key (such as the one created by BitAddress) and then spend the funds from that coin?
Please specify Android, iPhone (iOS), etc.

This can be more easily developed now thanks to an API offered by Blockchain.info:

http://bitcointalk.org/index.php?topic=121297.msg1307934#msg1307934

Mt. Gox mobile, available from Google Play and on jailbroken iPhones using Cydia allows you to redeem private key QR codes into your Mt. Gox account.
As a bonus, if any payments are made to that address in the future, Mt. Gox will automatically sweep those funds as well.


text:
Can I spend a coin sent to myself before it confirms?
If I spend the entire balance in my wallet to another address in my own wallet, do I need to wait until it gets one confirmation in order to spend it, or does the client know it is my own funds and that it can be spent?
This can be done via RPC, but this question is specifically referring to using the bitcoin-qt client for this.

Yes.  Unlike other transactions you don't need to wait for the confirmations.
From the code which selects which coins to use to fund a transaction in src/wallet.cpp:
bool CWallet::SelectCoins(int64 nTargetValue, [...])
{
    vector<COutput> vCoins;
    AvailableCoins(vCoins);

    return (SelectCoinsMinConf(nTargetValue, 1, 6, vCoins, setCoinsRet, nValueRet) ||
            SelectCoinsMinConf(nTargetValue, 1, 1, vCoins, setCoinsRet, nValueRet) ||
            SelectCoinsMinConf(nTargetValue, 0, 1, vCoins, setCoinsRet, nValueRet));
}

where SelectCoinsMinConf's 2nd and 3rd arguments are "number of confirmations a coin needs if it's from me" and "number of confirmations a coin needs if it's from someone else" respectively:
bool CWallet::SelectCoinsMinConf(int64 nTargetValue, int nConfMine, int nConfTheirs, [...])
{
    [...]
}

So what's happening is the code first tries to fund the transaction using only coins you sent to yourself which have at least 1 confirmation and coins from others with at least 6 confirmations.  If it can't find enough that way, it tries again but only requiring 1 confirmation on the coins no matter where they came from.  And if that also fails, it relaxes the requirement for confirmations on coins you sent to yourself.

I think you can. You definitely can do it from bitcoind (and it was possible with wxbitcoin), and I don't see any extra code that would prevent it. There's no reason for it to be prevented. I haven't tried it, though.


text:
How to run bitcoind (command line client) without connecting to other nodes?
I'm running Abe to create a blockchain SQL database, so I don't want the Bitcoin client to touch my copy of the blockchain at the moment. But I would like to query the blockchain with the bitcoind client. Is there a way to run bitcoind without connecting to other nodes?

iptables on bitcoin port?

I see two approaches:

Use --connect <hostname> with the hostname set to something that doesn't exist.
Unplug from the network.

-connect=0.0.0.0 should do.

Now there is an extra option to disable automatic connections at startup:

CLI option -noconnect
Configuration option: noconnect=1


text:
Fun puzzle: How to generate keypair without anyone seeing the private key?
I've been trying to figure out a way for a bitcoin wallet keypair to be created between two or more people without either/any one of them holding the private key afterwards.
Instead, I want the buyer to hold a PGP-encrypted file that has the private key inside it.
The buyer is never, ever, to see that private key... It's the seller's wallet that is encrypted... But the seller can't have the private key yet either, just a public key, and the PGP key to open the PGP-protected file.
I thought about a 3rd man in the middle creating the wallet and putting it there, but then the 3rd guy could cash out the wallet himself later...
So is there a trustless way to put the keypair into a PGP file and send that file to the buyer and the PGP key to the seller?
Enjoy the puzzle!

It sounds like your goal is to have a Bitcoin address generated by two parties that can only be spent out of by having those two parties cooperate. Is that correct?

Are you sure m-of-n transactions aren't instead what you need?

@Nick: Yes, or more specifically, can only be spent, by only the vendor, when the buyer sends the pgp encrypted wallet to the vendor. (Redemption)

@Lorhoris: I'm pretty sure M-of-n aren't going to help this need. I definitely want the end product to be a file encrypted in something like PGP, where the person holding it can't get inside and the other person can get inside, (and be the first one to access the wallet) but doesn't possess it in any way.

You are attempting to answer the question you are asking in the question. Let me get to the root of what you are asking.
From what I understand, you would like to create a 2 party escrow - buyer sends money in a way that can't be retrieved unless both parties are satisfied.
This can be done in two ways in Bitcoin - one through the use of multisignature transactions, other - through split-key addresses.
The first approach is to send the money to 2-of-2 multisignature combination of addresses - one held by the buyer, and another - by the seller. When they reach consensus, they create a transaction, each signs it and money is transferred. The disadvantage of this approach is that if they don't reach consensus, there is no way to settle the money dispute. If you would introduce some third party acting like an escrow and create 2-of-3 multisignature address, then you would need a consensus of any 2 involved parties. If the buyer and seller agree on a consensus, escrow service does not get involved and everyone is satisfied. If they can't reach consensus, escrow steps in and mediates the solution with the parties forcing a compromise - it can always break a stalemate by cooperating with one party.
The second approach is for both parties to settle on a public key each by themselves, and then combine it through multiplication or addition, creating a split-key address. They both know the public key and associated address, but none of them know the private key. If they agree on an output, the buyer sends the seller their private key and the seller can create a transaction crediting themselves, or if the seller wishes to return the money to the buyer, they can give them their private key. This approach has a few problems:

One can't be using the same private keys in multiple transactions, as they get shared with third parties
The person that will receive the second private key can dictate any division of money - nothing can stop them
There is no possibility of creating a 2-of-3 escrow

So all in all, use multisignature transactions.

2-on-2 multisig is fine, I'm satisfied for this file to never be opened, ever, in fact; but the problem becomes in the creation of the file. -How do we generate the keypair and stuff them inside the PGP wrapper without either user ever getting the chance to see the private key?

@DexBitcoin What is the point of the PGP?

To make the wallet into an encrypted file that can change hands without allowing anyone to see the private key inside it.

@DexBitcoin With traditional encryption, the person encrypting the file would need to have known its content, so it's not useful for your problem.

This can be done in general with fully homomorphic encryption. (It wouldn't be a "PGP file" per se but an encrypted message with the specific scheme.) It's not very practical currently though.
But it looks like what you are really trying to do is an arrangement where A and B each have a piece of information, without any of them having seen the other, so that both pieces are needed in order to spend specific bitcoins. In this case, ECDSA addition of keys will work, as will a multi-signature transaction.


text:
Multibit password error: Could not decrypt bits
I am attempting to remove my password from my wallet in Multibit. However, everytime I try my password it says "The removal of the password has failed. The error is "could not decrypt bytes.""
I've tried searching online but I can't seem to figure out what this means/how to fix this.

Is it the correct password? What happens when you put in an intentionally incorrect password?

It means literally that the decryption operation of the wallet failed.
If the password you enter is different in any way from the password you entered when you encrypted your wallet with "File | Add Password" you will get this error.
I would check things like:

Are you definitely entering the same password you used to encrypt this wallet.
CAPS lock key
If you use an Input Method Editor, are you entering exactly the same characters.

There is also another copy of your private keys on your disk if you need to use them:
When MultiBit encrypts the wallet it writes out the private keys to an export file, encrypted with the wallet password. As long as you have the correct password you can create a new wallet and import the private keys into the new wallet. You will then have access to your bitcoin.
There are more details about this in the help (https://multibit.org/en/help/v0.5/help_contents.html) in the topics:

Help on specific tabs | Importing private keys
More technical details | File descriptions

That's what I was afraid of. I'm using the only password I use for things related to this, which means I must have typed it incorrectly when adding it. Is there anything I can do to recover the password or is the BTC in my wallet pretty much lost?

There is only brute forcing it with variants of your password (but I don't think anyone has written anything to do this).


text:
Which version of the JSON-RPC protocol does Bitcoin use?
I would like to get some clarification on which version  of the JSON-RPC protocol does Bitcoin use? 1.0 or 2.0?

A little of both:
//
// JSON-RPC protocol.  Bitcoin speaks version 1.0 for maximum compatibility,
// but uses JSON-RPC 1.1/2.0 standards for parts of the 1.0 standard that were
// unspecified (HTTP errors and contents of 'error').
//
// 1.0 spec: http://json-rpc.org/wiki/specification
// 1.2 spec: http://groups.google.com/group/json-rpc/web/json-rpc-over-http
// http://www.codeproject.com/KB/recipes/JSON_Spirit.aspx
//


text:
API calls - "not yet implemented"?
I tried sending some commands to my Bitcoin-QT running on Mac, and when I called "encryptwallet", I got this response:
Not Yet Implemented: use GUI to encrypt wallet, not RPC command

What API calls listed on wiki are not available in the GUI client, and which are not available in any client?

Exactly two RPC calls can't be called when Bitcoin-Qt is running:
encryptwallet
stop

stop isn't yet implemented because there is work to be done to get the GUI and all of bitcoin's internal threads to shutdown in the right order (get the order wrong and we get crashes during shutdown).
encryptwallet isn't yet implemented because stop isn't yet implemented, and properly encrypting the wallet means re-writing wallet.dat and then shutting down cleanly so any database files are cleaned up properly (and any unencrypted private keys don't get left on the disk).
I'm not sure what you mean by "not available in any client" -- as far as I know, the original "Satoshi" client is the only one that supports the JSON-RPC interface at all.


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

distributed digital currency, or distributed digital crypto-currency. the "distributed" bit is a key issue - anyone can make a centralized digital currency, even with crypto thrown in.

We need some shorter name for that.

The "digital" part is probably unnecessary, as there is few uses for non-digital crypto-currencies.

indeed probably digital can be dropped... that said, what's the goal here? "the shortest name" or "the most accurate name" ?

Probably the shortest of the names which are accurate, that is cover all the -coins without using a qualifier that doesn't add any information.

Distributed != decentralized.
Mintchip, for instance, is close as it is distributed (multiple issuers), but it is not in the same league as bitcoin because the rules on it are centrally controlled.

It's called crypto-currency, Wikipedia article.

As there are no crypto-currencies that are not decentralized, this is probably the shortest of the proper terms we can use so far, but that might change in the future to "distributed crypto-currency", as pointer out by nanotube.

"As there are no crypto-currencies that are not decentralized" <- this is false. see, e.g., loom.cc.

I use "chain currencies". There are precedents for crypto currencies. OT currencies are also crypto-currencies.
Ripple IOUs use cryptoGraphy in the distributed protocol too. The uniqueness is definitely in the block chain.
I often refer to them as just "coins" since most of them are called SomethingCoin.

I think crypto-currency is the good term.
But personnally I tend to use digital currency because crypto can scare some users.


text:
Historical prices via API for major alts (not BTC)
I am trying to build a small project of mine using historical prices for major alternative currencies such as LTC, DGC, MOON, TIPS, etc and so far I managed to collect only current prices of cryptsy API.
Which APIs provide historical data?

you might try http://www.programmableweb.com/search/bitcoin there are some nice API's there that might offer what you're looking for


text:
Is access to mining the only obstacle to centralised bitcoin-like currency?
Considering the value of bitcoin beside dollars there seems to be so many applications where a centralised bitcoin-like system may be ideal for internal accountancy and transfers, especially among micro financial institutions.
Parsing a blockchain gives an overview of entire network.
If mining was restricted to only specific people what other obstacles are there for "private" use of Bitcoin clone?
Are there any commercial or opensource entities doing this?

Without the mining, Bitcoin is just a transaction register - a very primitive version of the same idea that underlies pretty much every accounting system ever. So I'm not sure what it would offer over more sophisticated accounting software.

Mining is the part of the decentralizing, to make a centralized currency you simply need to skip the publicly maintained blockchain portion, which includes mining. But without the publicly maintained blockchain, you really have only have a database that keeps track of transactions.