Bitcoin Forum
May 28, 2024, 01:56:32 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1] 2 3 »
1  Bitcoin / Development & Technical Discussion / Re: Would it be possible to reestablish the decimal value of a bitcoin? on: April 26, 2014, 04:03:14 PM
Just handle everything in satoshi Wink
That's how you're "suppsoed" to handle money on the backend anyway.
2  Bitcoin / Development & Technical Discussion / Re: Performance of Account structures in bitcoind on: April 26, 2014, 03:54:40 PM
I was curious to see what kind of negative performance effect a large number of accounts has on bitcoind. The results are not pretty. My tests were not particularly scientific, but here's what I've learned.

Methodology

I created 50K accounts in an empty wallet with a small balance. The resulting wallet file is approximately 13MB. Creating accounts takes approximately 0.03 seconds per account.

Code:
for N = 1 to 5e4
client.move('', accountN, smallAmount)

I then executed a sequence of 10K random transfers between these accounts. These transfers take approximately 0.1 seconds each, on average. Again, this is in an empty wallet, and all of these transfers are internal to the wallet (no transactions are actually sent to the bitcoin network).

Code:
client.move(account1, account2, smallAmount)

Next, I executed the following sequence of external transfers (i.e. actual network transactions), on each transfer sending funds from a random account to another random account.
  • send 100 transfers
  • send 500 transfers
  • send 10 transfers
  • send 50 transfers

Code:
    account1 = getRandomAccount()
    account2 = getRandomAccount(except: account1)
        
    address = client.getaccountaddress(account2)

    if (client.getbalance(account1) > 1e-4):
        tx = client.sendfrom(account1, address, 1e-4)              
    elif client.getbalance() > 1e-4:
        tx = client.sendtoaddress(address, 1e-4)
    else:
        raise Exception('No balance available in any account')  

Results

After each step above, I recorded the size of the wallet file, the time it took for bitcoind to start up (i.e. initialize by reading the wallet and other database files), and the time it took to actually execute the transfers. Here is the summary of my results:


The results are surprisingly bad. File wallet.dat ballooned to 85MB (!) after only 660 transfers. I have no idea what could possibly take up so much space, but I'll try to inspect the file using BerkeleyDB tools and will add to this post if I gain some insight.

The really bad news is that transfers end up taking several seconds each, on average. As expected the duration increases as the number of transactions in the wallet goes up.

I inspected the bitcoind logs and it appears that most of the delay is because wallet.dat is flushed to disk after each transfer.

Other Observations
I was able to severely corrupt the wallet file by terminating bitcoind process. I did not lose any keys, but the account balance information was corrupted. In essence I was able to lose track of what the correct balance is in each account without any effort at all.

Conclusions
Others have said, both here in this forum and elsewhere: don't use Accounts in a server environment. More importantly, bitcoind itself does not seem to be suitable for any type of system where a large number of transactions is expected to occur. A different solution is needed. There is only one commercial, enterprise-level solution I am aware of (https://bitsofproof.com/?page_id=323).

Additionally, BerkeleyDB (which bitcoind uses to store account, address, and all other data) does not appear to be a sufficiently robust solution if you really care about account balances. I do not know enough about it to comment but it is possible that it would perform better if it were implemented differently. For example, I would like to see an option for transactional replication of all wallet data to a separate disk or server. This would at least ensure an internally-consistent copy of the wallet database exists. As things stand now, if the wallet file gets corrupted, everything is lost, and I was able to corrupt the file very easily (and unintentionally).

I am contemplating starting an open source alternative to the built-in bitcoind account management infrastructure. It would still use bitcoind for interfacing with the network, but would use a more robust database setup to store and handle account data. More about this in a separate post.


https://en.bitcoin.it/wiki/Accounts_explained
From the wiki:
Code:
Account Weaknesses
Since the accounts feature was introduced, several services have used it to keep track of customer's bitcoin balances and have had the following problems:

Wallet backups are an issue; if you rely on a good backup of wallet.dat then a backup must be done every time an address is associated with an account and every time the 'move' command is used.
The accounts code does not scale up to thousands of accounts with tens of thousands of transactions, because by-account (and by-account-by-time) indices are not implemented. So many operations (like computing an account balance) require accessing every wallet transaction.
Most applications already have a customer database, implemented with MySQL or some other relational database technology. It is awkward at best to keep the bitcoin-maintained Berkely DB wallet database and the application database backed up and synchronized at all times.
3  Bitcoin / Development & Technical Discussion / Re: Running Two Wallets at the Same Time on: April 26, 2014, 03:51:41 PM
Good info, but if your'e doing this for security that's a reallly bad idea.

Wallets stored locally on the same box may have different credentials, but realistically if one is compromised it's probably not because somebody figured out your RPC info (though it is possible.) Anyway, the point is the only reason I could think of doing this outside of security would be to give each person using a computer their own wallet, at which point honestly you should just use the "account" field
4  Bitcoin / Development & Technical Discussion / Re: Is Bitcoin's JSON-RPC interface safe? Or proper handling of money. on: April 25, 2014, 09:05:28 AM
Side note, 2e-05 expands to 2*10^(-5), which comes out to .00002
What you really need to do is ensure non-uniform decimals (e.g. .0010335) comes out appropriately.
5  Bitcoin / Development & Technical Discussion / Re: Is Bitcoin's JSON-RPC interface safe? Or proper handling of money. on: April 25, 2014, 09:00:25 AM
What language are you developing in?

Give this a look:
http://deron.meranda.us/python/comparing_json_modules/numbers
6  Bitcoin / Development & Technical Discussion / Re: Under what conditions would a coin wallet fail for a call to getrawtransaction? on: April 25, 2014, 08:36:58 AM
Turns out it worked, thanks a lot.
There's a massive number of vout instances. Is this normal for large transactions?
7  Bitcoin / Development & Technical Discussion / Re: Under what conditions would a coin wallet fail for a call to getrawtransaction? on: April 25, 2014, 08:24:46 AM
So I'm not specifically crawling the bitcoin blockchain, simply because it's too big to wait for a download right now, but I'm trying to dig through other altcoin transaction histories instead.
Using the process:
tx = decoderawtransaction(getrawtransaction(txid_initial))
repeat again for tx['vin']['txid']
After going back a tx or two, the transaction doesn't seem to exist. Or at least that's what the wallet thinks. I know the transaction took place though, because I've got the coins from that transaction sitting in another wallet, and I checked the txid they're the same.

Is this a product of the coin wallet I've chosen, or is this a product of how the bitcoin-rpc interface is "supposed" to behave?

Before you can query arbitrary transactions, add the txindex=1 entry to your config file, and then reindex Bitcoind.this is standard.

As usual there are circumstances you should be aware of, if its not fully synced it will fail. If you recorded an incoming payment I'd at zero confirmations then you have malleability to worry about.

This should be sufficient, currect?
Change config -> stop daemon -> start daemon -> daemon --reindex
8  Bitcoin / Development & Technical Discussion / Under what conditions would a coin wallet fail for a call to getrawtransaction? on: April 25, 2014, 07:58:18 AM
So I'm not specifically crawling the bitcoin blockchain, simply because it's too big to wait for a download right now, but I'm trying to dig through other altcoin transaction histories instead.
Using the process:
tx = decoderawtransaction(getrawtransaction(txid_initial))
repeat again for tx['vin']['txid']
After going back a tx or two, the transaction doesn't seem to exist. Or at least that's what the wallet thinks. I know the transaction took place though, because I've got the coins from that transaction sitting in another wallet, and I checked the txid they're the same.

Is this a product of the coin wallet I've chosen, or is this a product of how the bitcoin-rpc interface is "supposed" to behave?
9  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [NRS|NoirShares] More than a coin, Equity-linked gateway to Noir DACs/Ventures on: April 22, 2014, 10:06:32 PM
There is an issue with the gpu mining pool....

Both pools have been routinely down since before 12AM PST last night
10  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [NRS|NoirShares] More than a coin, Equity-linked gateway to Noir DACs/Ventures on: April 22, 2014, 10:01:02 PM
Huehuehuehue
You're funny Mario
11  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [NRS|NoirShares] More than a coin, Equity-linked gateway to Noir DACs/Ventures on: April 22, 2014, 09:53:26 PM
That's just childish.
Don't half ass your product and blame the people who want to make it work. The entire dev team should be embarrassed.

Not only is this coin gpu resistant, it's outright any form of mining resistant Wink


why are you so angry? because you have your opinion, not enough?

now which will be the opinion of many, so break the pools

I'm not angry,  though lajz99 is starting to piss me off with his "I know you are what am I" responses.
Like I said, the devs should be embarrassed if specifically for this utter lack of respect for users.

I offered to host a pool. I pointed you in the direction of how to deal with DDoS. What more do you want? Should I just give you ssh access to my dedicated servers too? Seriously, you want CONSTRUCTIVE input? Provide constructive responses.

Anyway, enjoy your coin.
Hope it succeeds. The community needs something that works for once.
Glad to see this innovative idea has such a friendly team. It'll go far this way
12  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [NRS|NoirShares] More than a coin, Equity-linked gateway to Noir DACs/Ventures on: April 22, 2014, 09:43:17 PM
That's just childish.
Don't half ass your product and blame the people who want to make it work. The entire dev team should be embarrassed.

Not only is this coin gpu resistant, it's outright any form of mining resistant Wink


EDIT:
Mario, if ypool picks it up that would be fantastic.
They already learned from PTS a few months back how to deal with DDoS and have stable servers under load.
What are their reasons for not wanting to host noirshares?
13  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [NRS|NoirShares] More than a coin, Equity-linked gateway to Noir DACs/Ventures on: April 22, 2014, 09:35:13 PM
...I mean this was poorly planned and enough to make me want to put 0 effort into this coin.

If that's the case, please move along.  Thank you for your input,  however, the pro's of this algorithm outweigh the con's such as difficulty assembling a pool.  You can't blame the "coin" for pools getting dos'd...that's just absurd.

You mean I can't blame the devs for not actually building a pool?
In fact I can.

I'd hoped this could be the PTS that Invictus couldn't make.
DAC's for real maybe?

Alas, good concept, bad deployment, shitty community full of elitists out to make a buck.
14  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [NRS|NoirShares] More than a coin, Equity-linked gateway to Noir DACs/Ventures on: April 22, 2014, 09:28:17 PM
https://www.mintpal.com/voting

^^^ Let's get it on there and get it going. There is a chance they might list NRS as a market pick coin as well.
Let them know about it.

https://poloniex.com/exchange/btc_nrs
Look at that chart. ^ ! Floor rising and no one would sell to me last night all night even with bids above floor.

Unfortunately, we do not need more exchanges, but more pool

Unfortunately, because the team didn't chose such a specific miner / protocol running more pool is a real pain and until somebody comes along with some infos on how to make that work, it seems like we're stuck with the DDoS'd pair for now.

I mean, really guys, running a proxy service isn't that hard, and it's pretty freaking cheap. You shouldn't be falling to DDoS attacks. By shouldn't, I mean this was poorly planned and enough to make me want to put 0 effort into this coin.
15  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [NRS|NoirShares] More than a coin, Equity-linked gateway to Noir DACs/Ventures on: April 22, 2014, 08:07:01 AM
I would be willing to host and run a dedicated mining pool for Noirshares. However I'm having some issues getting integration with the coyote protocol. If anyone has the knowledge for making this work, I have the capability to implement. Contact me if you are interested.
16  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN] OMCoin | LAUNCHED | Quick Mining Period | Updated on: April 08, 2014, 09:03:57 PM
We're still hashing away here. Haven't encountered any problems.
17  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][CDC] CLOUDCOIN REVIVAL. PoW/PoS, hard to mine = rare! Exch @ bter.com on: April 08, 2014, 04:23:42 PM
Sent.
18  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][CDC] CLOUDCOIN REVIVAL. PoW/PoS, hard to mine = rare! Exch @ bter.com on: April 08, 2014, 03:59:06 PM
As for coins held previously, very few were mined at that point in time due to database issues. I performed the upgrade to fix these issues.
I am still holding a small amount of what's left, if you can provide me an address I will offer you 500CDC as compensation for these issues.
19  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][CDC] CLOUDCOIN REVIVAL. PoW/PoS, hard to mine = rare! Exch @ bter.com on: April 08, 2014, 03:52:42 PM
I'll bump the confirmation limit up.
Orphans are a product of the network, nothing to do with my pool. If you were mislead into thinking you had extra coins because of it I apologize, but that's part of what happens sometimes.
However I'm showing you having mined several thousand CDC, much of which is still sitting in the pool wallet. I would request you take a look at things on the pool, and get back to me with the status of what is specifically out of place.

Yes. I mined several CDC from your pool and payed and over 200 confirmations on my wallet. But many many transactions become 0 confirm.

Example: First then all transactions was confimations over 200.

"Status: 0/unconfirmed
Date: 4/6/2014 16:26
From: unknown
To: BsM96vCgSNTjmK54zT8U5Pfjd3eWP1gWzk (own address)
Credit: 1032.818347 CDC
Net amount: +1032.818347 CDC
Transaction ID: a922832860298121313b8a5aff7d0473f9b291410d7b638097fc37fa943142c7

"
and
"Status: 0/unconfirmed
Date: 4/6/2014 17:00
From: unknown
To: BsM96vCgSNTjmK54zT8U5Pfjd3eWP1gWzk (own address)
Credit: 1112.601872 CDC
Net amount: +1112.601872 CDC
Transaction ID: bfe8f622303659aacd73eff8b02c03cbc46730eee5ea347bc0426b3dabc5d83e
"

and

"Status: 0/unconfirmed
Date: 4/6/2014 17:53
From: unknown
To: BsM96vCgSNTjmK54zT8U5Pfjd3eWP1gWzk (own address)
Credit: 1013.311012 CDC
Net amount: +1013.311012 CDC
Transaction ID: 712910e38f600836737deb094bd44950b9004e95502a3f90c04ef85be3cd8fc5

"

Where is my coins? and some remain coins on your pool when classic interface (now you have new pool interface)

Orphaned blocks are blocks rejected by the network. Any payouts credited to you on a block BEFORE it was properly confirmed / orphaned will ALSO be orphaned, as explained above by TheSerapher's issue thread.

So in short, those SPECIFIC coins you are referring to never existed. They were simply a number that got assigned to you until the network rejected them, in which case they're declared invalid and never existed.

I have INCREASED THE CONFIRMATION COUNT BEFORE PAYOUTS ARE CREDITED TO YOUR ACCOUNT AND THIS WILL NOT HAPPEN AGAIN

http://bitcoin.stackexchange.com/questions/5859/what-are-orphaned-and-stale-blocks
This explains, briefly, the concept of an orphaned block. Once again, it's a product of the network, not the pool. The pool only allowed you to think you had coins when in fact they weren't properly confirmed YET at the time of crediting.

The big problem is that we have so few peers right now. It's painful...


Please let me know if there is any pool-related problem I can address for you.
20  Alternate cryptocurrencies / Announcements (Altcoins) / Re: [ANN][CDC] CLOUDCOIN REVIVAL. PoW/PoS, hard to mine = rare! Exch @ bter.com on: April 08, 2014, 03:39:58 PM
From TheSerapher himself:
https://github.com/MPOS/php-mpos/issues/767
"And again to avoid confusion: orphan blocks will always create credit transactions! They are not available to the user as a balance unless confirmation limits are off and blocks get confirmed, users pay out and then a block still becomes orphan"

Confirmations are now 120.
Pages: [1] 2 3 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!