Author

Topic: NXT :: descendant of Bitcoin - Updated Information - page 1052. (Read 2761642 times)

full member
Activity: 238
Merit: 100
Regarding just purging accounts, what about when the value of .99NXT is extremely high, as we do expect it to? Or if an account with only .01 NXT in it has many aliases?  Then I dont think this would be feasable and I think we must design for the worst case of  .01 NXT (or .001 or .0001 or whatever we go with) in many accounts, and write a new genesis block with public keys coupled with balances and aliases, coded in binary format.

Obviously we would completely purge any public keys for accounts with zero balance and with no aliases.

At a minimum you would need to store the account # (64 bits) plus the public key (256 bits) plus the balance (64 bits?) which would be 384 bits or 48 bytes per account.
Account id is a sha of public key. It doesn't need to be stored, except as an optimization.  
Since there are less balances (44721 max) than accounts its better to have balances with accounts, not accounts with balances.  

thanks Ciyam for doing that math, I was away from home reading on my phone and was gearing up to do it myself when I got back

Quote
Actually it's 44720, sorry, didn't notice the rounding.
There are only 44720 different balances possible at the same time, for one billion coins, starting from 1, for integer balances. It's the sum of an arithmetic sequence summing to one billion.
For smallest increase 0.01, it's 447114 different balances possible at the same time, still with 1 NXT minimum balance.  


Im not following, what is the signifigance of the number 44720 in regards to 1 billion?  I feel dumb for not knowing, it seems like I probably should not have to ask this question  Embarrassed

EDIT: wait i figured it out, you are trying to save space on storing balances.  i r not completely dumb




Obviously we would purge
member
Activity: 98
Merit: 10
+2. Good post Zahlen. Better PM him in case he's stopped reading this thread.

Thanks, I did Smiley

Well, there goes my "work on Nxt" time for today. Becoming a trend lately Grin
sr. member
Activity: 380
Merit: 275
Has anyone been having issues since 5.12? I have been generating a ton of bad blocks since 5.11 and 5.12 . As of today, it has been out of control.
full member
Activity: 148
Merit: 100
The performance version would be a list of public keys sorted by their account id with their balance id, which would take 34.34GB. This would have search performance lg(number of accounts), very fast.  

I still think you need to sort by account id not public key
But that's what I wrote. 

Quote
and of course there are Nxt accounts that actually don't have a public key associated with them
These would have to be treated separately, another list for uninitalized accounts, not a problem. 
legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
The performance version would be a list of public keys sorted by their account id with their balance id, which would take 34.34GB. This would have search performance lg(number of accounts), very fast.  

I still think you need to sort by account id not public key (as you send Nxt to an account # not to a public key) and of course there are Nxt accounts that actually don't have a public key associated with them (I think in terms of efficient DB structures as I've done a lot of work with that over the years).

There's one big problem, a "referenced transaction". Currently you can send a transaction which is valid only if referenced transaction is valid. That's fundamentally incompatible with limited blockchain. So either the 'referenced transaction' is limited to 'transaction in the last n blocks' or it goes entirely. 

Agreed - it would make sense to limit such things to the last 1440 blocks.
full member
Activity: 148
Merit: 100
And somebody please tell me how you booby trap a genesis block so we've got to wait for source code release to start on this?
There's no need for this. A balance sheet is the exact same thing as blockchain, just in a different form. It doesn't matter what supposed traps are in a genesis block. It's not a problem.   

There's one big problem, a "referenced transaction". Currently you can send a transaction which is valid only if referenced transaction is valid. That's fundamentally incompatible with limited blockchain. So either the 'referenced transaction' is limited to 'transaction in the last n blocks' or it goes entirely.  
hero member
Activity: 644
Merit: 500
Fee voting tally google doc spreadsheet.  Please check your vote and PM me if I made a mistake.

https://docs.google.com/spreadsheet/ccc?key=0Akjrt0LTBXgcdFFkSGMwXzd4Q2NPU21yU2NOYWVldlE&usp=sharing

fix me! only 1 to 0.1!

I never said 0.3333 Tongue

0.01, so this thing isn't revisited any time soon
sr. member
Activity: 490
Merit: 250
I don't really come from outer space.
Zero trust doesn't exist.

In this case, everyone who is a Nxt user is trusting the developers. There is simply no choice.

There maybe reasons not to publish the exploits until most users have upgraded.

Fair point.

I updated the software change log on the wiki tonight, and the "change log" for this version and the last one really bugged me.  Just compare what was said about these two versions to almost ANY previous version and you'll see what I mean.

Jean-Luc and CfB have earned a fair bit of trust from me since December.... but based on the information around these two updates, I've stepped slightly backwards from my previous trust level.

Reading between the lines of their posts this is what I get: there's an active exploit in the wild right now.  

Upgrade.  Seriously.

full member
Activity: 148
Merit: 100
Okay - I sort of get it now - but I'm not sure if that's going to be so useful for data storage as you will need to index on "account" not on "balance".
Well, that's the minimum storage version.
The performance version would be a list of public keys sorted by their account id with their balance id, which would take 34.34GB. This would have search performance lg(number of accounts), very fast.  
full member
Activity: 210
Merit: 100
Zero trust doesn't exist.

In this case, everyone who is a Nxt user is trusting the developers. There is simply no choice.

There maybe reasons not to publish the exploits until most users have upgraded.

Fair point.

I updated the software change log on the wiki tonight, and the "change log" for this version and the last one really bugged me.  Just compare what was said about these two versions to almost ANY previous version and you'll see what I mean.

Jean-Luc and CfB have earned a fair bit of trust from me since December.... but based on the information around these two updates, I've stepped slightly backwards from my previous trust level.
legendary
Activity: 1470
Merit: 1004

NxtChg, we want you here. Please stay. Smiley


+1

+2. Good post Zahlen. Better PM him in case he's stopped reading this thread.

+3
newbie
Activity: 56
Merit: 0

NxtChg, we want you here. Please stay. Smiley


+1

+2. Good post Zahlen. Better PM him in case he's stopped reading this thread.
full member
Activity: 196
Merit: 100

NxtChg, we want you here. Please stay. Smiley


+1
hero member
Activity: 644
Merit: 500
To a certain extent if the lead developer issues a release and says it's critical we have no choice but to trust him.  But, outside developers can and should perform their own independent audits of new releases to see if something suspicious is done and raise the alarm if need be.

Most Nxt users are not "developers", so while I take your point, I also suggest that most people are being asked to update software without being able to understand OR verify the reason for the update.  It's the software-developer equivalent of "trust me. Just do it."

There is no such thing as  zero trust. You are using operating system, and you trust it's not logging everything you type and sending it somewhere. You trust the software developers of your web browser.  Even if you are using open source software, how would you know if the official binary is based on the released source code? (unless you build your own binaries after going through the source line by line).

Zero trust doesn't exist.

In this case, everyone who is a Nxt user is trusting the developers. There is simply no choice.

There maybe reasons not to publish the exploits until most users have upgraded.
member
Activity: 98
Merit: 10
(Sorry about all the names mentioned. But I have to be concrete.)

To NxtChg:

I obviously can’t stay in a community where four words and a stupid smiley makes somebody wish you death

Guess you meant this:

And I am tired of being one guy on the other side of everybody else. A cohesive community is much more important than stupid arguments.

I think a cohesive community is great. But a community that doesn't disagree is simply homogeneous, and imo consequently brittle. A truly robust, cohesive community should be able to handle disagreements and work past them.


As xyzzyx mentioned in the other thread, you can disagree without being disagreeable. I'd add that instead of just debate (in particular angry debate), also try for discussion and dialetic instead. Explain where you're coming from, don't assume that the other party has the same knowledge, prior experience, insight and perspective as you. This paragraph applies to everyone, not just one person.

For instance, you and jl777 keep butting heads hard. James tends to take an idea and see how far he can go with it, that's his strength. And also I think with too narrow focus on certain objectives  (1 instruction!) to the exclusion of other considerations, that's his weakness, and where he'd like us to come in and help fill the gaps. I've always found James open to reasoning.

NxtChg, I think if you had presented this to James earlier (and without a loaded tone), your discussion could have gone differently.


In discussions, I've found that it helps to quote just those points that you're addressing. This lets you and the other party be clear about what exactly each of you are referring to, instead of trying to respond to an entire long post all at once and possibly (likely imo) building on more and more different assumptions on both sides. (This will also cut down on quote pyramid clutter. But I'm tired of pressing this issue.)

This post applies to all of us, not just the folks I've mentioned in it.


NxtChg, we want you here. Please stay. Smiley
full member
Activity: 196
Merit: 100


If we can recast a genesis block every 20th block as part of the routine operation of the NXT blockchain, we have accomplished something very, very special - a self limiting blockchain that grows very slowly.
A blockchain needs to be as long as longest possible fork, at least. I don't know, half a day? Definitely not 20 blocks.  

1440 blocks is the limit for blockchain reorganization if I'm remembering correctly.  So it would have to be just beyond there.


Let's call it 1500 blocks between pruning / re-genesis to be on the safe side.  1500 minutes = 25 hours.  So for a testnet to generate three genesis blocks during its run to prove that's a routine thing, it needs to go 75 hours, or three days and three hours.  

Total number of fake transactions that need to be broadcast during a NXT 3+ day pruning 1000 TPS testnet demo run are 3*1500*60*1000 = 270 million.  At 128 bytes per transaction, that's  just under 35 GB.  SO the block chain grows by say 12GB between pruning and re-genesis.   The Bitcoin blockchain is currently at just under 14 GB:  https://blockchain.info/charts/blocks-size .  

So with the proposed 1000 TPS testbed with re-genesis every 1500 blocks we are saying that when NXT gets to the current Bitcoin blockchain size, we do something about it.  They don't.  Victory NXT.  This alone make the project worth doing.

So does the requirement to let a 1000 TPS blockchain go over 1440 blocks / 10 GB in size to avoid forks mean that Raspberry Pis and smartphones are now excluded from the 1000 TPS testbed?  Or is there a trick we can use to keep them along for the ride?  Please discuss.

And somebody please tell me how you booby trap a genesis block so we've got to wait for source code release to start on this?
full member
Activity: 224
Merit: 100
To a certain extent if the lead developer issues a release and says it's critical we have no choice but to trust him.  But, outside developers can and should perform their own independent audits of new releases to see if something suspicious is done and raise the alarm if need be.

Most Nxt users are not "developers", so while I take your point, I also suggest that most people are being asked to update software without being able to understand OR verify the reason for the update.  It's the software-developer equivalent of "trust me. Just do it."

It's hypocritical to build a decentralized system that is supposed to be trustless, and then ask "untrusted" members of that community to "trust" that they should install new software and not ask questions of the "untrusted" people who issue the order.

You can do your own thing, of course, but I won't give.  I'm not gonna jump off a bridge just because Jean-Luc or CfB says so.  What they've done is bad, and they should feel bad.  When I get an explanation, I'll update my software.

It is unfortunate they had to do it this way, but if they said it was urgent, then it most likely is. The fact that both of them (and I suppose the implicit approval of BCNext) approved it makes it not as bad. C-f-b did say he would disclose what it was, but I'm sure how won't do that until a large majority of nodes have upgraded to 0.6.0.
full member
Activity: 210
Merit: 100
To a certain extent if the lead developer issues a release and says it's critical we have no choice but to trust him.  But, outside developers can and should perform their own independent audits of new releases to see if something suspicious is done and raise the alarm if need be.

Most Nxt users are not "developers", so while I take your point, I also suggest that most people are being asked to update software without being able to understand OR verify the reason for the update.  It's the software-developer equivalent of "trust me. Just do it."

It's hypocritical to build a decentralized system that is supposed to be trustless, and then ask "untrusted" members of that community to "trust" that they should install new software and not ask questions of the "untrusted" people who issue the order.

You can do your own thing, of course, but I won't give.  I'm not gonna jump off a bridge just because Jean-Luc or CfB says so.  What they've done is bad, and they should feel bad.  When I get an explanation, I'll update my software.
legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
There are only 44720 different balances possible at the same time, for one billion coins, starting from 1, for integer balances. It's the sum of an arithmetic sequence summing to one billion.

Okay - I sort of get it now - but I'm not sure if that's going to be so useful for data storage as you will need to index on "account" not on "balance".
member
Activity: 112
Merit: 10
Fee voting tally google doc spreadsheet.  Please check your vote and PM me if I made a mistake.

https://docs.google.com/spreadsheet/ccc?key=0Akjrt0LTBXgcdFFkSGMwXzd4Q2NPU21yU2NOYWVldlE&usp=sharing

fix me! only 1 to 0.1!

I never said 0.3333 Tongue
Jump to: