Bitcoin Forum
May 01, 2024, 09:37:38 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 [1468] 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 ... 2557 »
  Print  
Author Topic: NXT :: descendant of Bitcoin - Updated Information  (Read 2761529 times)
xyzzyx
Sr. Member
****
Offline Offline

Activity: 490
Merit: 250


I don't really come from outer space.


View Profile
February 05, 2014, 04:52:34 AM
 #29341

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).


Yes, exactly.  I suggested the custom RISC VM outlined in N. Wirth's Compiler Construction as a starting point, but we could build whatever else we needed into it -- like a SHA256 hash instruction, or a Curve25519 instruction.

"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
1714599458
Hero Member
*
Offline Offline

Posts: 1714599458

View Profile Personal Message (Offline)

Ignore
1714599458
Reply with quote  #2

1714599458
Report to moderator
1714599458
Hero Member
*
Offline Offline

Posts: 1714599458

View Profile Personal Message (Offline)

Ignore
1714599458
Reply with quote  #2

1714599458
Report to moderator
If you see garbage posts (off-topic, trolling, spam, no point, etc.), use the "report to moderator" links. All reports are investigated, though you will rarely be contacted about your reports.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
swartzfeger
Full Member
***
Offline Offline

Activity: 350
Merit: 100


View Profile
February 05, 2014, 04:59:56 AM
 #29342

Yes, exactly.  I suggested the custom RISC VM outlined in N. Wirth's Compiler Construction as a starting point, but we could build whatever else we needed into it -- like a SHA256 hash instruction, or a Curve25519 instruction.

For the curious:

Niklaus Wirth's Compiler Construction (International Computer Science Series)
jl777
Legendary
*
Offline Offline

Activity: 1176
Merit: 1132


View Profile WWW
February 05, 2014, 05:01:13 AM
 #29343

This webpage that spawns a linux shell has convinced me that anything we can think of is now possible!

OK, so let's do it. DAC lego blocks. this is Alias's idea and I don't understand it very well, but he says that with the properly designed "lego blocks", all sorts of DACs can be created by non-technical people using flowcharting software.

Basically if you can design a flowcharted process, it will automatically generate a DAC that implements that and runs in a decentralized way on NXT.

We have a browser page spawning linux shell, so why not flowcharting DAC's!

It seems that we have layers and layers to define and create, but anything can be done. Here is my stab at roughly defining the layers:

<low level VM implementing machine code> - CfB "lets just do it"
-------
<C compiler + useful libraries> - TBD (Zahlen?)
<Java subset? + access to subset NXT core> - TBD
-------
<software running on hubs + glue code AM Turing scripts offchain email etc> - TBD
-------
<DAC lego blocks> - Alias in the process of defining
-------
<flowcharts for useful DACs + flowcharting software> - TBD
-------
SkyNXT

I have 400000 NXT burning a hole in my pocket. I will spend it to accelerate development of the above. As soon as we nail down the specs for the layers, I will be able to figure out what the bounties are for each piece.

Another 100000 NXT for development of modular trustless exchanging of NXT against other cryptos, starting with XCP.

I am also budgeting 50000 NXT for people who help with defining these layers. Not sure how I will allocate it, hopefully the people who work on it will cooperate and tell me what each person's share should be.

emunie might be a sinking ship, but etherium is not. We need to start this now.

James

http://www.digitalcatallaxy.com/report2015.html
100+ page annual report for SuperNET
xyzzyx
Sr. Member
****
Offline Offline

Activity: 490
Merit: 250


I don't really come from outer space.


View Profile
February 05, 2014, 05:02:25 AM
 #29344

Yes, exactly.  I suggested the custom RISC VM outlined in N. Wirth's Compiler Construction as a starting point, but we could build whatever else we needed into it -- like a SHA256 hash instruction, or a Curve25519 instruction.

For the curious:

Niklaus Wirth's Compiler Construction (International Computer Science Series)

That one is outdated.  This is the most up to date one:
http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf

"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 Offline

Activity: 1176
Merit: 1132


View Profile WWW
February 05, 2014, 05:05:59 AM
 #29345

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).

Except CfB said it had to be a low level (assembly language) type of language. He started a contest to find language with fewest opcodes for Turing complete. I doubt anything is less than 1, though there were half a dozen variants of single opcode Turing completes

I doubt any script will be doing encryption directly. I mean if someone wants to spend the NXT on fees they can even spawn a linux shell, but the primary purpose of these scripts are to obtain execution contexts for well define processes (DAC)

As long as the scripts can invoke the external software services running on hubs, saving and restoring state using AM, then arbitrarily fancy stuff can be done, eg. send emails, SMS, offchain transactions, etc.

Also NXT alias can be used to pass in parameters to the scripts in addition to just simply modifying it before each submission.

James

http://www.digitalcatallaxy.com/report2015.html
100+ page annual report for SuperNET
swartzfeger
Full Member
***
Offline Offline

Activity: 350
Merit: 100


View Profile
February 05, 2014, 05:06:43 AM
 #29346

Yes, exactly.  I suggested the custom RISC VM outlined in N. Wirth's Compiler Construction as a starting point, but we could build whatever else we needed into it -- like a SHA256 hash instruction, or a Curve25519 instruction.

For the curious:

Niklaus Wirth's Compiler Construction (International Computer Science Series)

That one is outdated.  This is the most up to date one:
http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf

Yeah, I'd say -- by about 10 years. Thanks!
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1075


Ian Knowles - CIYAM Lead Developer


View Profile WWW
February 05, 2014, 05:08:56 AM
 #29347

Except CfB said it had to be a low level (assembly language) type of language. He started a contest to find language with fewest opcodes for Turing complete. I doubt anything is less than 1, though there were half a dozen variants of single opcode Turing completes

This isn't a competition to find the least # of instructions (but if it was then "you won"). Cheesy

I am guessing CfB just isn't keen on something that is too complicated but believe me *without* instructions such as SHA256 such a VM would really be of no practical use at all.

So I guess it depends whether we are wanting to add something "useful" or whether we just want to say "me too" when it comes to having some sort of "Turing complete VM".

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
Zahlen
Member
**
Offline Offline

Activity: 98
Merit: 10


View Profile
February 05, 2014, 05:15:38 AM
 #29348

I was thinking about subleq some more over lunch, and took a look at some of what's been done.

We talked about three factors earlier: testing, execution speed, memory use. However we weigh the importance of each of these factors, I don't think there's a situation where subleq, by itself, is a good choice (a more comprehensive reduced instruction set could be though).

Here's what I mean in more detail:

It takes at minimum three subleq (subtraction) operations to perform one addition. To do c = a + b, you do

i = 0 - a  (there's a register holding the constant 0 somewhere)
i = i - b  (remember this is an assignment equal, so the math isn't funny)
c = 0 - i

Was fun to come up with as a mental exercise, but pretty stupid in practice. Much better to just have a 2nd instruction,   ADD a, b   which replaces b with a + b directly in one operation. The testing cost should be minimal, since addition is so well-understood. It saves on memory and computation. And is a lot less stupid to work with.

For more complex operations, this compounds further. Take a look at http://www.sccs.swarthmore.edu/users/06/adem/engin/e25/finale/ for some idea of it. (GOTO section 3.2 Implemented Operations)


jl777
Legendary
*
Offline Offline

Activity: 1176
Merit: 1132


View Profile WWW
February 05, 2014, 05:16:50 AM
 #29349

Except CfB said it had to be a low level (assembly language) type of language. He started a contest to find language with fewest opcodes for Turing complete. I doubt anything is less than 1, though there were half a dozen variants of single opcode Turing completes

This isn't a competition to find the least # of instructions (but if it was then "you won"). Cheesy

I am guessing CfB just isn't keen on something that is too complicated but believe me *without* instructions such as SHA256 such a VM would really be of no practical use at all.

So I guess it depends whether we are wanting to add something "useful" or whether we just want to say "me too" when it comes to having some sort of "Turing complete VM".

There are 28 of the usual type of assembly instructions that are built from the single subleq. There is a C compiler that generates higher_subleq

The only other alternative so far is 28 instructions, but not sure if an open source C compiler was found for it, nor how much other code already exists.

This is why I defined a layered approach to get to where anybody can flowchart a DAC. That sure sounds useful, just ask Alias

James

http://www.digitalcatallaxy.com/report2015.html
100+ page annual report for SuperNET
Zahlen
Member
**
Offline Offline

Activity: 98
Merit: 10


View Profile
February 05, 2014, 05:18:28 AM
 #29350

Except CfB said it had to be a low level (assembly language) type of language. He started a contest to find language with fewest opcodes for Turing complete. I doubt anything is less than 1, though there were half a dozen variants of single opcode Turing completes

This isn't a competition to find the least # of instructions (but if it was then "you won"). Cheesy

I am guessing CfB just isn't keen on something that is too complicated but believe me *without* instructions such as SHA256 such a VM would really be of no practical use at all.

So I guess it depends whether we are wanting to add something "useful" or whether we just want to say "me too" when it comes to having some sort of "Turing complete VM".


SHA256 could just be implemented as a higher-level function (not part of the opcode). After all, it's just a composition of ANDs, ORs, NOTs, and bitshifts.

Or are you thinking of hardware optimization, for applications that require lots of it?

jl777
Legendary
*
Offline Offline

Activity: 1176
Merit: 1132


View Profile WWW
February 05, 2014, 05:22:29 AM
 #29351

I was thinking about subleq some more over lunch, and took a look at some of what's been done.

We talked about three factors earlier: testing, execution speed, memory use. However we weigh the importance of each of these factors, I don't think there's a situation where subleq, by itself, is a good choice (a more comprehensive reduced instruction set could be though).

Here's what I mean in more detail:

It takes at minimum three subleq (subtraction) operations to perform one addition. To do c = a + b, you do

i = 0 - a
i = i - b  (remember this is an assignment equal, no the math isn't funny)
c = 0 - i

Was fun to do as a mental exercise, but pretty stupid in practice. Much better to just have a 2nd instruction,   ADD a, b   which replaces b with a + b directly in one operation. The testing cost should be minimal, since addition is so well-understood. It saves on memory and computation. And is a lot less stupid to work with.

For more complex operations, this compounds further. Take a look at http://www.sccs.swarthmore.edu/users/06/adem/engin/e25/finale/ for some idea of it.


The budget is millions of instructions per script instance to get to milliseconds runtime
If we are talking about a few hundred lines of C code, there is no way that expands to million instructions.

If subleq is no good, then we need some other instruction set. this is only one layer of the total picture, certainly an important one.

I wish CfB would have answered my question about whether he liked subleq or not. That is really the only thing that matters. If we can cut time to market in half by using subleq, it would make sense to use it.

Who really looks at compiler output nowadays anyway? When all the layers are complete, people will be designing DACs using flowcharting software. They wont care what the assembly code is like. As long as the C compiler works, do you care about the machine code?

Time to market. Clock is ticking. Etherium is way ahead of us.

James

http://www.digitalcatallaxy.com/report2015.html
100+ page annual report for SuperNET
Anon136
Legendary
*
Offline Offline

Activity: 1722
Merit: 1217



View Profile
February 05, 2014, 05:23:56 AM
 #29352

Choose your language:

Versions of non-JVM languages Language    On JVM
Erlang    Erjang
JavaScript    Rhino
Pascal    Free Pascal
PHP            Quercus
Python    Jython
REXX    NetRexx[2]
Ruby    JRuby
Tcl            Jacl
   
Languages designed expressly for JVM Language
BBj
Clojure
Fantom
Groovy
MIDletPascal
Scala
Kawa

We need a low-level language. Most (all?) languages in ur list r high-level.

Why? What's the difference?

low level languages interface directly with the hard drive, ram and processor. with low level languages you give those components very specific directions. higher level languages interface with lower level languages. they are designed to make the processes executed by lower level languages more intuitive and allow for more abstraction in the deployment of the lower level language functionality.

Rep Thread: https://bitcointalk.org/index.php?topic=381041
If 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?
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1075


Ian Knowles - CIYAM Lead Developer


View Profile WWW
February 05, 2014, 05:24:34 AM
 #29353

Or are you thinking of hardware optimization, for applications that require lots of it?

Think about what such a VM is going to be "useful" for first and foremost. To my mind it would be for executing contracts which may require "proofs" for which either EC or SHA256 operations are likely to be the "bread and butter" (same as is the case with Bitcoin's "script" and exactly why it *has* such op codes).

Just being able to execute "arbitrary" code for the purpose of "executing arbitrary" code seems kind of silly to me (e.g. do you think anyone is going to spend large amounts of Nxt fees to run some sort of "card game" or the like?).

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
Zahlen
Member
**
Offline Offline

Activity: 98
Merit: 10


View Profile
February 05, 2014, 05:29:03 AM
 #29354

I wish CfB would have answered my question about whether he liked subleq or not. That is really the only thing that matters. If we can cut time to market in half by using subleq, it would make sense to use it.

I'd wait (for just a while! Clock won't tick by much) until we knew what the parameters were more clearly, what exactly is being achieved by having a reduced instruction set, before we decide on which particular instructions would be good.

(All I know right now is "Smart contracts need to run algos", I don't know why they need algos that are built from few instructions.)

Anon136
Legendary
*
Offline Offline

Activity: 1722
Merit: 1217



View Profile
February 05, 2014, 05:30:47 AM
 #29355

Or are you thinking of hardware optimization, for applications that require lots of it?

Think about what such a VM is going to be "useful" for first and foremost. To my mind it would be for executing contracts which may require "proofs" for which either EC or SHA256 operations are likely to be the "bread and butter" (same as is the case with Bitcoin's "script" and exactly why it *has* such op codes).

Just being able to execute "arbitrary" code for the purpose of "executing arbitrary" code seems kind of silly to me (e.g. do you think anyone is going to spend large amounts of Nxt fees to run some sort of "card game" or the like?).


paying enough to intentivize the network to run your code would be expensive so we can trust self interested people not to use it for arbitrary tasks. im sure some would but it would be a small problem. if on the other hand we tried to centrally plan this and dictate what sorts of code are acceptable and what sorts arnt, than who know what sort of innovation we may be stifling for lack of creativity and foresight on our part.

Rep Thread: https://bitcointalk.org/index.php?topic=381041
If 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?
Zahlen
Member
**
Offline Offline

Activity: 98
Merit: 10


View Profile
February 05, 2014, 05:31:21 AM
 #29356

Think about what such a VM is going to be "useful" for first and foremost. To my mind it would be for executing contracts which may require "proofs" for which either EC or SHA256 operations are likely to be the "bread and butter" (same as is the case with Bitcoin's "script" and exactly why it *has* such op codes).

Trouble is I don't know (see my above post). I'm coming into all this from a math perspective (subleq and one instruction computing piqued my interest here), not a cryptocurrency perspective. I just bought my first crypto little over a month ago Smiley Could you expand on this? What else might smart contracts need?


Eadeqa
Hero Member
*****
Offline Offline

Activity: 644
Merit: 500


View Profile
February 05, 2014, 05:31:28 AM
 #29357

Except CfB said it had to be a low level (assembly language) type of language. He started a contest to find language with fewest opcodes for Turing complete. I doubt anything is less than 1, though there were half a dozen variants of single opcode Turing completes

This isn't a competition to find the least # of instructions (but if it was then "you won"). Cheesy

I am guessing CfB just isn't keen on something that is too complicated but believe me *without* instructions such as SHA256 such a VM would really be of no practical use at all.

So I guess it depends whether we are wanting to add something "useful" or whether we just want to say "me too" when it comes to having some sort of "Turing complete VM".


I think the whole idea is stupid and goes nowhere. Anytime something new is announced by someone else, we have "me too" discussion here. Last week it was Zerocoin. What happened to it? Nothing. This week it's "Turing complete VM"
 
No one has answered what it will do 1000 tps claims?


Nomi, Shan, Adnan, Noshi, Nxt, Adn Khn
NXT-GZYP-FMRT-FQ9K-3YQGS
https://github.com/Lafihh/encryptiontest
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1075


Ian Knowles - CIYAM Lead Developer


View Profile WWW
February 05, 2014, 05:34:46 AM
 #29358

if on the other hand we tried to centrally plan this and dictate what sorts of code are acceptable and what sorts arnt, than who know what sort of innovation we may be stifling for lack of creativity and foresight on our part.

Good grief - suggesting ideas for a "useful instruction set" is now called "central planning"?

So - let's say we go with the idea of the 1 instruction low-level language and we charge say 1 NXT per 100 "operations".

Then a simple SHA256 operation will likely cost you 100's of NXT - so we have now a completely useless VM for doing SHA256 (but at least it wasn't "centrally planned" I guess).

Quote
No one has answered what it will do 1000 tps claims?

Indeed - the reason why I was suggesting we would need a "practical" instruction set if we are going to bother with this at all.

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
jl777
Legendary
*
Offline Offline

Activity: 1176
Merit: 1132


View Profile WWW
February 05, 2014, 05:37:56 AM
 #29359

if on the other hand we tried to centrally plan this and dictate what sorts of code are acceptable and what sorts arnt, than who know what sort of innovation we may be stifling for lack of creativity and foresight on our part.

Good grief - suggesting ideas for a "useful instruction set" is now called "central planning"?

So - let's say we go with the idea of the 1 instruction low-level language and we charge say 1 NXT per 100 "operations".

Then a simple SHA256 operation will likely cost you 100's of NXT - so we have now a completely useless VM for doing SHA256 (but at least it wasn't "centrally planned" I guess).

Quote
No one has answered what it will do 1000 tps claims?

Indeed - the reason why I was suggesting we would need a "practical" instruction set if we are going to bother with this at all.

I would imagine much cheaper to pay 1 NXT for client generate AM that does any complex calcs. The scripts can access AM data, so the idea is for the higherlevel code to push down expensive to calculate data into AM

http://www.digitalcatallaxy.com/report2015.html
100+ page annual report for SuperNET
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1075


Ian Knowles - CIYAM Lead Developer


View Profile WWW
February 05, 2014, 05:40:30 AM
 #29360

I would imagine much cheaper to pay 1 NXT for client generate AM that does any complex calcs. The scripts can access AM data, so the idea is for the higherlevel code to push down expensive to calculate data into AM

In which case I would suggest why bother doing "any calcs" at all - there seems to be *no thought* here about what this concept is needed apart from to somehow answer Ethereum with "me too"!

If we don't even have any idea what it is going to be used or useful for then I'd suggest not building it (at least we *know* what Zerocoin can offer).

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
Pages: « 1 ... 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 [1468] 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 ... 2557 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!