Zahlen
Member
Offline
Activity: 98
Merit: 10
|
|
February 05, 2014, 03:35:46 AM |
|
As it stands now, we're ostensibly the most advanced crypto with arguably the most fucked up, un-user friendly client ever.
This sums us up so well.
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
February 05, 2014, 03:36:19 AM |
|
What's the purpose behind minimizing the # of different instructions?
Every instruction needs to be implemented and tested. Fewer instructions means less work and faster time to market Mmm, but you'll need to test the higher-level instructions built on top of the lower-level instructions too right? Or will we be leaving that for third parties to figure out what higher-lev instructions they want? The key is that we can start testing the higher level instructions (which already exist) in parallel with development of the lower level. Instead of longer dev time for 28 instructions, we have (presumably) shorter dev time for 1 instruction and while that is being done simultaneously test the higher lever instructions and C compiler and C library functions. Not that most C library functions will be used as it will be expensive, but I figure if relatively complicated C library functions works based on a single opcode (which we can test right now!), then it bodes well for Turing scripts to function properly I am optimizing time to market by splitting the projects into pieces that can be developed in parallel. Maybe not the perfect split, so always open to improvements as measured by quicker expected time to market James Thanks! Besides time to market, what other factors do we need to consider? CfB mentioned memory, I guess execution speed is also a factor? subleq supports (and maybe encourages?) a lot of jumping around in memory, though the operations performed on the memory contents (subtraction, comparison of first bit (i.e <= 0 or not)) are fast. I'm playing around with subleq right now, so I'm curious about all this. EDIT: I might be able to help here. I know something about general computability theory (e.g. Turing completeness, halting problem concerns), algorithmic complexity analysis. But don't have experience with software testing (at industry standards). Correct me if im wrong but wouldn't we need a sandbox built into the nxt client? My understanding is that the forging node is what will provide the context for the Turing script. My guess is that all memory options will be highly constrained, any storage needs to go into AM. I think as long as CfB can make sure no address outside the program space is accessed, not sure what harm it can do. Not sure if the overhead of launching a new process makes sense, but that would get the memory protection. If it is an interpreted language, then pointer and stack checking wont be hard. Assuming there are lots of scripts to be executed (big fees!) then the overhead of a process to iterate through them wouldnt be too bad. Making sure it is impossible to crash the forging node regardless of script seems to be the big issue. If we went with subleq, we only have to make sure a single opcode is crashproofed. That is much less work than 28 opcodes. http://arxiv.org/pdf/1106.2593.pdf has info on the one opcode Turing complete James
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
February 05, 2014, 03:37:03 AM |
|
As it stands now, we're ostensibly the most advanced crypto with arguably the most fucked up, un-user friendly client ever.
This sums us up so well. minusbalancers seems pretty good
|
|
|
|
Malibusparky
Member
Offline
Activity: 87
Merit: 10
|
|
February 05, 2014, 03:41:38 AM |
|
Please explain to me why I am wrong or misunderstand. I obviously am not getting it or missed something. Thanks
No, you're not 'wrong', and I agree with a lot of your analogies. Still, it's an easy way to send NXT. It gets the community involved. It gets NXT moving from one hand to another. Anything that does this (sans cute Shiba meme) is a good thing. As it stands now, we're ostensibly the most advanced crypto with arguably the most fucked up, un-user friendly client ever. A simple way to tip NXT will relieve some of the pressure until all of the various service providers are up and running. And I guess like anything we don't like, we can simply choose not to participate. Good points. I also like Zahlen's points. But still it leaves a bad taste in my mouth. It might be perceived as "trying too hard" to market Nxt. I want Nxt to succeed as much if not more than anyone. I am fully vested. But I still think this particular marketing tactic is bad for Nxt. I hope like heckle and jeckle I'm wrong. Please shiba let me be wrong.
|
|
|
|
xyzzyx
Sr. Member
Offline
Activity: 490
Merit: 250
I don't really come from outer space.
|
|
February 05, 2014, 03:46:06 AM |
|
My guess is that all memory options will be highly constrained, any storage needs to go into AM. I think as long as CfB can make sure no address outside the program space is accessed, not sure what harm it can do.
I have a little experience with writing VMs. I've written VMs that interpret i8080 ops (ran Space Invanders ROM), mos6510 ops (ran Commodore 64 ROMs), and MC68HC11 ops (was a simulator replacement for a dev board so students could work on their projects outside the lab.) Properly written, everything will be sandboxed in the VM interpreter. No problems there.
|
"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
|
|
|
Zahlen
Member
Offline
Activity: 98
Merit: 10
|
|
February 05, 2014, 03:46:20 AM |
|
Please explain to me why I am wrong or misunderstand. I obviously am not getting it or missed something. Thanks
No, you're not 'wrong', and I agree with a lot of your analogies. Still, it's an easy way to send NXT. It gets the community involved. It gets NXT moving from one hand to another. Anything that does this (sans cute Shiba meme) is a good thing. As it stands now, we're ostensibly the most advanced crypto with arguably the most fucked up, un-user friendly client ever. A simple way to tip NXT will relieve some of the pressure until all of the various service providers are up and running. And I guess like anything we don't like, we can simply choose not to participate. Good points. I also like Zahlen's points. But still it leaves a bad taste in my mouth. It might be perceived as "trying too hard" to market Nxt. I want Nxt to succeed as much if not more than anyone. I am fully vested. But I still think this particular marketing tactic is bad for Nxt. I hope like heckle and jeckle I'm wrong. Please shiba let me be wrong. When I proposed my more general version (not just a reddit tipbot, but tipping software and API that sites in general could easily integrate), marketing didn't cross my mind. I was just thinking at the social level. It's a nice, and possibly fun and cool thing to do. And I was also thinking about how to get more nxt moving around. Personally I don't like to worry too much about what other people think. That's just me, dunno how other folks might see it.
|
|
|
|
Anon136
Legendary
Offline
Activity: 1722
Merit: 1217
|
|
February 05, 2014, 03:46:52 AM |
|
My guess is that all memory options will be highly constrained, any storage needs to go into AM. I think as long as CfB can make sure no address outside the program space is accessed, not sure what harm it can do.
I have a little experience with writing VMs. I've written VMs that interpret i8080 ops (ran Space Invanders ROM), mos6510 ops (ran Commodore 64 ROMs), and MC68HC11 ops (was a simulator replacement for a dev board so students could work on their projects outside the lab.) Properly written, everything will be sandboxed in the VM interpreter. No problems there. thanks guys for that information.
|
Rep Thread: https://bitcointalk.org/index.php?topic=381041If one can not confer upon another a right which he does not himself first possess, by what means does the state derive the right to engage in behaviors from which the public is prohibited?
|
|
|
pandaisftw
|
|
February 05, 2014, 03:50:00 AM |
|
Please explain to me why I am wrong or misunderstand. I obviously am not getting it or missed something. Thanks
No, you're not 'wrong', and I agree with a lot of your analogies. Still, it's an easy way to send NXT. It gets the community involved. It gets NXT moving from one hand to another. Anything that does this (sans cute Shiba meme) is a good thing. As it stands now, we're ostensibly the most advanced crypto with arguably the most fucked up, un-user friendly client ever. A simple way to tip NXT will relieve some of the pressure until all of the various service providers are up and running. And I guess like anything we don't like, we can simply choose not to participate. Good points. I also like Zahlen's points. But still it leaves a bad taste in my mouth. It might be perceived as "trying too hard" to market Nxt. I want Nxt to succeed as much if not more than anyone. I am fully vested. But I still think this particular marketing tactic is bad for Nxt. I hope like heckle and jeckle I'm wrong. Please shiba let me be wrong. If anything, the NXT tip-bot should be used to grow the NXT reddit community. Since a lot of Average Joes are familiar with reddit, it'd be good exposure for rewarding people I would have rewarded anyways for making good contributions to /r/NXT. But I agree we should not be the equivalent of doge tipping, we should tip for quality posts/ideas.
|
NXT: 13095091276527367030
|
|
|
Anon136
Legendary
Offline
Activity: 1722
Merit: 1217
|
|
February 05, 2014, 03:52:34 AM |
|
Please explain to me why I am wrong or misunderstand. I obviously am not getting it or missed something. Thanks
No, you're not 'wrong', and I agree with a lot of your analogies. Still, it's an easy way to send NXT. It gets the community involved. It gets NXT moving from one hand to another. Anything that does this (sans cute Shiba meme) is a good thing. As it stands now, we're ostensibly the most advanced crypto with arguably the most fucked up, un-user friendly client ever. A simple way to tip NXT will relieve some of the pressure until all of the various service providers are up and running. And I guess like anything we don't like, we can simply choose not to participate. Good points. I also like Zahlen's points. But still it leaves a bad taste in my mouth. It might be perceived as "trying too hard" to market Nxt. I want Nxt to succeed as much if not more than anyone. I am fully vested. But I still think this particular marketing tactic is bad for Nxt. I hope like heckle and jeckle I'm wrong. Please shiba let me be wrong. If anything, the NXT tip-bot should be used to grow the NXT reddit community. Since a lot of Average Joes are familiar with reddit, it'd be good exposure for rewarding people I would have rewarded anyways for making good contributions to /r/NXT. But I agree we should not be the equivalent of doge tipping, we should tip for quality posts/ideas. if someone does build a reddit tip bot ill probably use a lot of my promotional funds there for precisely that reason.
|
Rep Thread: https://bitcointalk.org/index.php?topic=381041If one can not confer upon another a right which he does not himself first possess, by what means does the state derive the right to engage in behaviors from which the public is prohibited?
|
|
|
Anon136
Legendary
Offline
Activity: 1722
Merit: 1217
|
|
February 05, 2014, 03:53:54 AM |
|
|
Rep Thread: https://bitcointalk.org/index.php?topic=381041If one can not confer upon another a right which he does not himself first possess, by what means does the state derive the right to engage in behaviors from which the public is prohibited?
|
|
|
|
^[GS]^
Member
Offline
Activity: 112
Merit: 10
|
|
February 05, 2014, 03:59:35 AM |
|
The first deposit in NXTio has finally been confirmed! It has taken ~48 hours. I've been tracking how long it takes me to confirm...
7:45pm = 170 confirmations left 8:00pm = 168 confirmations left = 15min +2 8:23pm = 147 confirmations left = 23min +21 8:46pm = 130 confirmations left = 23min +17 10:32pm = 76 confirmations left = 106min +54 10:56pm = 69 confirmations left = 24min +7 11:15pm = 57 confirmations left = 19min +12 11:21pm = 56 confirmations left = 6min +1 12:44am = 2 confirmations left = 83min +54
In short, every confirmation and takes about 1:30 min to 7:00 min depending on the network load of NXT.
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
February 05, 2014, 04:16:37 AM |
|
My guess is that all memory options will be highly constrained, any storage needs to go into AM. I think as long as CfB can make sure no address outside the program space is accessed, not sure what harm it can do.
I have a little experience with writing VMs. I've written VMs that interpret i8080 ops (ran Space Invanders ROM), mos6510 ops (ran Commodore 64 ROMs), and MC68HC11 ops (was a simulator replacement for a dev board so students could work on their projects outside the lab.) Properly written, everything will be sandboxed in the VM interpreter. No problems there. purely lucky guess on my part
|
|
|
|
CIYAM
Legendary
Offline
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
|
|
February 05, 2014, 04:36:56 AM |
|
The first "real job" that I had in IT was working in a tech team (of around 15) within a huge Insurance Software platform project (that had well over 100 devs working on it at one stage). It used a VM (prior to Java even existing) and its own 4GL style language above that (including it's own "compiler" and "debugger" and IDE) so I have had some pretty good experience at working with this sort of stuff.
Although "subleq" is clever I think it would end up being too inefficient (i.e. too many instructions needing to be processed to perform even fairly small tasks) not to mention too expensive in fees when you would have to be charging "per instruction" (the only way you are going to prevent effectively what would become DoS attacks).
For the best "bang for the buck" I think you would want the VM to include some very high level instructions a bit like the various "hash" op codes in Bitcoin's "script" and you would want to seriously consider how this is going to impact the supposed 1000+ TPS that is being hyped/hoped (I very much doubt that Ethereum will be able to do many TPS due to this aspect of its design).
So before going crazy "building" such a VM perhaps do some calculations about just how many instructions are going to be able to be processed per "VM transaction" and how that is going to affect the idea of "forging on a smartphone".
|
|
|
|
xyzzyx
Sr. Member
Offline
Activity: 490
Merit: 250
I don't really come from outer space.
|
|
February 05, 2014, 04:41:38 AM |
|
|
"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
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
February 05, 2014, 04:45:37 AM |
|
The first "real job" that I had in IT was working in a tech team (of around 15) within a huge Insurance Software platform project (that had well over 100 devs working on it at one stage). It used a VM (prior to Java even existing) and its own 4GL style language above that (including it's own "compiler" and "debugger" and IDE) so I have had some pretty good experience at working with this sort of stuff.
Although "subleq" is clever I think it would end up being too inefficient (i.e. too many instructions needing to be processed to perform even fairly small tasks) not to mention too expensive in fees when you would have to be charging "per instruction" (the only way you are going to prevent effectively what would become DoS attacks).
For the best "bang for the buck" I think you would want the VM to include some very high level instructions a bit like the hash op codes in Bitcoin's "script" and you would want to seriously consider how this is going to impact the supposed 1000+ TPS that is being hyped/hoped (I very much doubt that Ethereum will be able to do many TPS due to this aspect of its design).
So before going crazy "building" such a VM perhaps do some calculations about just how many instructions are going to be able to be processed per "VM transaction" and how that is going to affect the idea of "forging on a smartphone".
In this day and age anything that fits in CPU cache to execute is memory bound, eg. the size of the program limits execution speed. One thing I like about subleq is the very compact sizes for the code. I also hope that we can give a time budget, like 1 millisecond/NXT for each instance of a script. Anyway, this is why I offered bounty to assess subleq. It could be just as fast, or faster than ordinary code. just need to measure James
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
February 05, 2014, 04:46:16 AM |
|
OK, I just get a linux console. Are you telling me it is running a full linux using JS from inside my browser??
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
February 05, 2014, 04:47:39 AM |
|
OK, I just get a linux console. Are you telling me it is running a full linux using JS from inside my browser?? um. I just compiled hello world from inside my browser. What is happening?
|
|
|
|
xyzzyx
Sr. Member
Offline
Activity: 490
Merit: 250
I don't really come from outer space.
|
|
February 05, 2014, 04:48:38 AM |
|
OK, I just get a linux console. Are you telling me it is running a full linux using JS from inside my browser?? Yes. It is a PC emulator done in Javascript.
|
"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
|
|
|
CIYAM
Legendary
Offline
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
|
|
February 05, 2014, 04:49:39 AM |
|
In this day and age anything that fits in CPU cache to execute is memory bound, eg. the size of the program limits execution speed. One thing I like about subleq is the very compact sizes for the code.
I think you are not understanding something - how many instructions is it going to take to do SHA256? In the VM I am suggesting it would take exactly 1 instruction (with "subleq" you are going to have to "write" an SHA256 implementation and then measure it to even have an idea about how many thousands of instructions are involved).
|
|
|
|
|