|
NxtChg
|
|
February 02, 2014, 08:25:33 PM |
|
I'm sorry, just saying we should avoid binary because it's hard to agree or too hard to use is a cop out. Those issues can be sorted out. There are times and places where it is worthwhile to optimize. I think this is one.
No, I am just kidding I agree with you in general. Yes, in some specific cases of small network messages, hand-crafted structure can mean a lot. And if we go with a binary format, embedding a type is not a bad idea. I just think we're nowhere near (and won't be any time soon) such high loads that would justify switching to a low-level, hand-optimized binary format.
|
|
|
|
pinarello
Full Member
Offline
Activity: 266
Merit: 100
NXT is the future
|
|
February 02, 2014, 08:25:56 PM |
|
I'v changed up the reference client installer again It now searches for Java on your machine, and if it doesn't find it, it will download and install either x86 or x64, depending on your system. I also changed the Post Setup Launcher to actively ping http://127.0.0.1:7874/index.html to detect when the Nxt client comes online. It will then re-direct to https://127.0.0.1:7875. I had to use the unsecure port because the SSL Cert error prevents the browser from returning a 200 ok message which is what I use to determine if Nxt has loaded. As stated before, there is no longer any need to remove an old client version before installing a new one. Simply download the new version and the installer will update it. The "Folder is in use" error that showed up every now and then at the end of the install has also been fixed. I'll use this for the next release from Jean-Luc, but I'm not going to go back and update my release of 0.5.11. Please, PLEASE test this installer and give me your feedback on any errors. I have run it on Windows 7 x86 and x64, and Windows 8 x64 without issue. So far my overhead with things I've had to add to make this work (Jquery, PostSetupLauncher, .bat files, etc.) is about 144KB. The Uninstaller is another 719KB. Nxt Installer 0.5.11 Web Setup BETA TEST: http://www.mediafire.com/download/uhu6m1u7upmn769/Nxt%200.5.11%20Web%20Setup%20BETA%20TEST.exeSHA-256: 66A3037D7F9D4BCA806EA38F1E9BA0D5EFD59BBD98050EF603F0AF4A9A147698 testing right away.
|
|
|
|
NxtChg
|
|
February 02, 2014, 08:26:50 PM |
|
|
|
|
|
ChuckOne
Sr. Member
Offline
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
|
|
February 02, 2014, 08:29:40 PM |
|
Besides real problems regarding binary formats, its psychologically most destructive property is that everybody has the self-proclaimed best encoding, the fastest encoding, the most space-efficient encoding, the most flexible encoding and so and so which only differ in one of two bits somewhere and therefore makes them 100% incompatible. Thank you.
Also from experience, I would recommend using a Type-Length-Value (TLV) messaging structure to facilitate expandability and maintenance. Endianness is easily dealt with. Additionally, the binary bytestream may benefit further with addition of compression algorithms, assuming the data is non-random.
Lol, nice catch.
|
|
|
|
xyzzyx
Sr. Member
Offline
Activity: 490
Merit: 250
I don't really come from outer space.
|
|
February 02, 2014, 08:35:48 PM |
|
Is it really necessary? How much is he gonna save, especially since he still rounds to bytes and doesn't use compression?
If we use compression, I recommend it be optional for a client. This scheme was used by an experimental compiler for the Oberon OS in the '90s for encoding constants in abstract symbol tree based object files called slim-binaries. They used other techniques too in order to keep object file sizes down, and nearly all of what they did isn't relevant to what we're doing but on average they saw a dramatic decrease in size of their object files compared to other schemes. This is from the article Slim Binaries by Franz and Kistler in Communications of the ACM v40 i12, Dec. 1997: Granted, most of that savings was due to an adaptive LZW-style encoding on the elements of an AST so we won't see such savings. I recommend the variable length encoding of integer constants not for any compression it may provide as that's just an incidental bonus we get for free. I recommend the encoding for the following reasons: 1. For portability of representation of constants between architectures. 2. Low working memory requirements. 3. Fast to encode and decode. 4. Simple to implement. 5. The code for the encoding and decoding of integers is very small -- only a hand-full of bytes. And messing with bits is even worse than dealing with endianness.
The scheme is actually pretty simple. The example code Franz gives for encoding integers doesn't do any explicit bit-twiddling: there purposefully aren't such operations in the Oberon family of languages in order to guarantee portability. (It's a foreign way of thinking for C-accustomed programmers.)
|
"An awful lot of code is being written ... in languages that aren't very good by people who don't know what they're doing." -- Barbara Liskov
|
|
|
Passion_ltc
|
|
February 02, 2014, 08:39:41 PM |
|
Total Voters: 230 Are we sure this thing is reliable?.. Nope. A lot of cheating, in last 15 minutes about 100+ votes!!:| About one hour before I added it on NXTarea.com to the top. I'm sure this generated many votes for me in the end. I also asked a few friends of mine to vote. But all in all it appears to be very high. Well my site had about 300 views in the last 2 hours, dunno.. Result AM contest:1) passion_ltc 55 (23.9%) 50,000 NXT to 13337237365691622237 2) Minusbalancer 53 (23%) 30,000 NXT to 5687942189255392308 3) landomata (Nxtty Messenger) 42 (18.3%) 20,000 NXT to 4852454727154647174) Marcus03 21 (9.1%) 15,000 NXT to 1758531264253431177 4) nxtru 21 (9.1%) 15,000 NXT to 6488861056876578743 4) getfun12345 21 (9.1%) 15,000 NXT to 5693933960808456307 5) scor2k 17 (7.4%) 15,000 NXT to 13506390574400724639 Total Voters: 230 Why 15k to everyone? It S not to fair for the 3(only 5k more) also considering that we decide to split the Work in 3 people to gave a better app, next time i will make something useless to get 15k or maybe i will cheat... Congrats to this fake Contest! I submitted 3 projects as one. You submitted 1 project with 3 ppl. It doesn't matter in the end. And I saw that you will make an IPO with your app.. Be happy that you won money.. Can someone say to me what AM features minusbalancers client has? I can't find it.. And I don't want to install it, I like the webclient.
|
|
|
|
ChuckOne
Sr. Member
Offline
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
|
|
February 02, 2014, 08:39:51 PM |
|
I'm sorry, just saying we should avoid binary because it's hard to agree or too hard to use is a cop out. Those issues can be sorted out. There are times and places where it is worthwhile to optimize. I think this is one.
No, I am just kidding I agree with you in general. Yes, in some specific cases of small network messages, hand-crafted structure can mean a lot. And if we go with a binary format, embedding a type is not a bad idea. I just think we're nowhere near (and won't be any time soon) such high loads that would justify switching to a low-level, hand-optimized binary format. You are both right. Why not wait until the pain gets too strong and then see how we can mitigate them? One plan to catching up with higher loads could be: 1) adding compression 2) switching to 'a low-level, hand-optimized binary format' 3) if we are lucky then compression layer will even be able to compress the binary format. We got it for free because of 1). 4) adjusting payload of high-level protocol and reducing number of requests Just to make it sure: how many transactions on average do we have right now?
|
|
|
|
Asian Prepper
|
|
February 02, 2014, 08:40:15 PM |
|
I've changed up the reference client installer again It now searches for Java on your machine, and if it doesn't find it, it will download and install either x86 or x64, depending on your system. I also changed the Post Setup Launcher to actively ping http://127.0.0.1:7874/index.html to detect when the Nxt client comes online. It will then re-direct to https://127.0.0.1:7875. I had to use the unsecure port because the SSL Cert error prevents the browser from returning a 200 ok message which is what I use to determine if Nxt has loaded. As stated before, there is no longer any need to remove an old client version before installing a new one. Simply download the new version and the installer will update it. The "Folder is in use" error that showed up every now and then at the end of the install has also been fixed. I'll use this for the next release from Jean-Luc, but I'm not going to go back and update my release of 0.5.11. Please, PLEASE test this installer and give me your feedback on any errors. I have run it on Windows 7 x86 and x64, and Windows 8 x64 without issue. So far my overhead with things I've had to add to make this work (Jquery, PostSetupLauncher, .bat files, etc.) is about 144KB. The Uninstaller is another 719KB. Nxt Installer 0.5.11 Web Setup BETA TEST: http://www.mediafire.com/download/uhu6m1u7upmn769/Nxt%200.5.11%20Web%20Setup%20BETA%20TEST.exeSHA-256: 66A3037D7F9D4BCA806EA38F1E9BA0D5EFD59BBD98050EF603F0AF4A9A147698 DO you have a 1 click install available for a MAC? If not, does anyone have a 1 click install for a mac? I have some people that I want to introduce to nxt but all they have is a mac n I've never used a mac before... Tai Zen
|
As of 2014-04-09 I no longer post as "Asian Prepper" and will post under my real name "Tai Zen" to eliminate confusion. Founder of www.PrisonOrFreedom.com | BTC: 19HHZ1yEimKUYVFM9TkXqd9xwM54jSFrmc | LTC: LTA99422wieqR1MfWeNxZU5xAsESE9MzW7 | NXT: 17225446755425423638
|
|
|
Mistafreeze
|
|
February 02, 2014, 08:43:29 PM |
|
I've changed up the reference client installer again It now searches for Java on your machine, and if it doesn't find it, it will download and install either x86 or x64, depending on your system. I also changed the Post Setup Launcher to actively ping http://127.0.0.1:7874/index.html to detect when the Nxt client comes online. It will then re-direct to https://127.0.0.1:7875. I had to use the unsecure port because the SSL Cert error prevents the browser from returning a 200 ok message which is what I use to determine if Nxt has loaded. As stated before, there is no longer any need to remove an old client version before installing a new one. Simply download the new version and the installer will update it. The "Folder is in use" error that showed up every now and then at the end of the install has also been fixed. I'll use this for the next release from Jean-Luc, but I'm not going to go back and update my release of 0.5.11. Please, PLEASE test this installer and give me your feedback on any errors. I have run it on Windows 7 x86 and x64, and Windows 8 x64 without issue. So far my overhead with things I've had to add to make this work (Jquery, PostSetupLauncher, .bat files, etc.) is about 144KB. The Uninstaller is another 719KB. Nxt Installer 0.5.11 Web Setup BETA TEST: http://www.mediafire.com/download/uhu6m1u7upmn769/Nxt%200.5.11%20Web%20Setup%20BETA%20TEST.exeSHA-256: 66A3037D7F9D4BCA806EA38F1E9BA0D5EFD59BBD98050EF603F0AF4A9A147698 DO you have a 1 click install available for a MAC? If not, does anyone have a 1 click install for a mac? I have some people that I want to introduce to nxt but all they have is a mac n I've never used a mac before... Tai Zen I dont. I haven't touched a Mac since 1998. Look here, wesley has one. https://nextcoin.org/index.php/topic,708.0.html
|
|
|
|
NxtChg
|
|
February 02, 2014, 08:47:11 PM |
|
Uhm, what's the point of quoting papers from the 90's? 1. For portability of representation of constants between architectures. 2. Low working memory requirements. 3. Fast to encode and decode. 4. Simple to implement. 5. The code for the encoding and decoding of integers is very small -- only a hand-full of bytes.
I still believe this is a case of extremely premature optimizations, but would answer anyway: 1. Endianness is trivial to deal with. 2. That is irrelevant to fixed/variable encoding. 3. Not doing it is even faster. 4. Not implementing it is even simpler. 5. The code for not doing it is exactly zero bytes.
|
|
|
|
salsacz
|
|
February 02, 2014, 08:48:48 PM |
|
Total Voters: 230 Are we sure this thing is reliable?.. yes, we also had 200 votes in the coinmarket poll in 2 hours... here are many listeners...
|
|
|
|
NxtChg
|
|
February 02, 2014, 08:49:49 PM |
|
Why not wait until the pain gets too strong and then see how we can mitigate them?
One plan to catching up with higher loads could be: 1) adding compression 2) switching to 'a low-level, hand-optimized binary format' 3) if we are lucky then compression layer will even be able to compress the binary format. We got it for free because of 1). 4) adjusting payload of high-level protocol and reducing number of requests
+1, I am out of this discussion
|
|
|
|
rickyjames
|
|
February 02, 2014, 08:50:02 PM |
|
Count me in.
I've been thinking about this whole 1000 TPS thing and have a basic question. If ANYBODY can be the node that generates a block, but a node with a low rate data link can't support 1000TPS, then are we saying that the NXT TPS chain is only as strong / fast as its weakest link?
I am guessing any node that can't keep up will automatically become blacklisted and they fall forever behind. Such low bandwidth nodes will need to run slim clients. Not sure how they will be able to send NXT James So we start by telling people they can forge NXT based on their stake, then blacklist them forever if they can't meet a certain level of performance? If this is true then we better stop telling people they can forge on their smartphones now, rather than later. Some promotional material may need to be changed to reflect a realistic cost of forging on a high TPS network. +1. Bingo. This is exactly where I was headed with this chain of logic. You know, there is some serious downside to having this Step X plan that nobody but BCNext and JLP fully understands yet. They keep hinting at conquer-the-world performance while the rest of us are down here struggling to write whitepapers and figure out how many Raspberries/VPSs/Odroids to get online to back it all up and there's just not enough knowledge or facts to do it efficiently from an engineering point of view or honestly from a marketing point of view. Not trying to cut anybody down, just sayin. I've got some serious questions coming in future posts about this whole 1000 TPS thing once I get caught up on 20 pages here. For now, riddle me this, Batman. Say we do get 1000 TPS using binary instead of JSON on a 1 Megabit per second line (and everybody who used to forge NXT a smartphone or Raspberry are pissed cause they've been cut out of the picture as slowpoke slackers). That implies each transaction is now 128 bytes so the NXT blockchain is growing at a minimum of a megabyte every 8 seconds. This is a gigabyte every 8000 seconds or roughly every 2 hours 15 minutes. That's a NXT blockchain that is growing 10 gigabytes PER DAY. The Bitcoin blockchain is currenly called "bloated" and "hard to manage" at 16 gigabytes after FIVE YEARS. So...what's the secret sauce to deal with NXT blockchain bloat of 10GB per day? I've read that our mini-blockchain can be "pruned" altho I believe I've seen that's to be a future capability. I also seem to recall that "pruning" would only need to be done annually. I ALSO seem to recall (I'm doing a lot of recalling) that the whole pruning concept was to get rid of historical transaction data. The pruning was to reset the blockchain in a cryptographically verifiable manner and say that "everybody's balances are now so-and-so at such-and-such a timestamp" and dump from the blockchain all of the historical transactions supporting that conclusion. 1000TPS for NXT requires something bordering on Harry Potter level magic. Is BCNext saying he's figured out how to PRUNE THE BLOCKCHAIN TO USER BALANCE INFO ONLY...IN REAL TIME?
|
|
|
|
minusbalancer
Newbie
Offline
Activity: 56
Merit: 0
|
|
February 02, 2014, 08:51:34 PM |
|
Can someone say to me what AM features minusbalancers client has? I can't find it.. And I don't want to install it, I like the webclient.
Encrypted and not encrypted messaging is accessible from the Account screen. It allows to send the Encrypted and Non-Encrypted messages. Encryption is performed transparently - no need to enter any pass codes or initialization vectors. I think it was stated in my contest entry. Should make some screenshots next time.
|
|
|
|
Passion_ltc
|
|
February 02, 2014, 08:53:09 PM |
|
Can someone say to me what AM features minusbalancers client has? I can't find it.. And I don't want to install it, I like the webclient.
Encrypted and not encrypted messaging is accessible from the Account screen. It allows to send the Encrypted and Non-Encrypted messages. Encryption is performed transparently - no need to enter any pass codes or initialization vectors. I think it was stated in my contest entry. Should make some screenshots next time. Which encryption algo is used?
|
|
|
|
S3MKi
Legendary
Offline
Activity: 1540
Merit: 1016
|
|
February 02, 2014, 08:53:55 PM |
|
Total Voters: 230 Are we sure this thing is reliable?.. yes, we also had 200 votes in the coinmarket poll in 2 hours... here are many listeners... Why not? I posted link4voting in vk.com/cryptonxt here http://vk.com/wall-64086699_61
|
|
|
|
ChuckOne
Sr. Member
Offline
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
|
|
February 02, 2014, 08:55:32 PM Last edit: February 02, 2014, 09:10:36 PM by ChuckOne |
|
Is it really necessary? How much is he gonna save, especially since he still rounds to bytes and doesn't use compression?
If we use compression, I recommend it be optional for a client. [...] I agree. It's yet another serialization. I would extend this further: Don't let use fight over the right compression or binary format. Let's make it configurable, so it can be off or slim can be on or lzw can be on or etc. etc. And after a while, we will see which way will become the most dominant format. And even newcomers could be easily introduced and tested by the clients.
|
|
|
|
minusbalancer
Newbie
Offline
Activity: 56
Merit: 0
|
|
February 02, 2014, 08:58:29 PM |
|
Can someone say to me what AM features minusbalancers client has? I can't find it.. And I don't want to install it, I like the webclient.
Encrypted and not encrypted messaging is accessible from the Account screen. It allows to send the Encrypted and Non-Encrypted messages. Encryption is performed transparently - no need to enter any pass codes or initialization vectors. I think it was stated in my contest entry. Should make some screenshots next time. Which encryption algo is used? Curve for the shared key, AES for the message encryption. PS: This is publicly available info since the source is published.
|
|
|
|
|
|