Author

Topic: NXT :: descendant of Bitcoin - Updated Information - page 1096. (Read 2761629 times)

hero member
Activity: 910
Merit: 1000
In the meantime, I wish to report that 0.7.0 is running successfully with an H2 database backend, no more serialized java object files. No need to keep all blocks and transactions in memory anymore.



Smiley
legendary
Activity: 1176
Merit: 1134
I found a language with only 8 opcodes but i'm not sure that this will
be a good for your needs as the language is completely f*d up and if you uset it can f**k up your brain.
Smiley

I called brain fuck.
http://www.muppetlabs.com/~breadbox/bf/


Brainfuck requires too much memory.
I found turing complete langauges with ONE opcode!?
http://en.wikipedia.org/wiki/One_instruction_set_computer

I think I win contest Smiley

Subtract and branch if less than or equal to zero[edit]
The subleq instruction ("SUbtract and Branch if Less than or EQual to zero") subtracts the contents at address a from the contents at address b, stores the result at address b, and then, if the result is not positive, transfers control to address c (if the result is positive, execution proceeds to the next instruction in sequence).[3]:4-7
Pseudocode:
    subleq a, b, c   ; Mem = Mem - Mem[a]
                     ; if (Mem ≤ 0) goto c
Conditional branching can be suppressed by setting the third operand equal to the address of the next instruction in sequence. If the third operand is not written, this suppression is implied.
A variant is also possible with two operands and an internal accumulator, where the accumulator is subtracted from the memory location specified by the first operand. The result is stored in both the accumulator and the memory location, and the second operand specifies the branch address:
    subleq2 a, b     ; Mem[a] = Mem[a] - ACCUM
                     ; ACCUM = Mem[a]
                     ; if (Mem[a] ≤ 0) goto b
Although this uses only two (instead of three) operands per instruction, correspondingly more instructions are then needed to effect various logical operations.
Synthesized instructions[edit]
It is possible to synthesize many types of higher-order instructions using only the subleq instruction.[3]:9-10
Unconditional branch:
    JMP c ==    subleq Z, Z, c
Addition can be performed by repeated subtraction, with no conditional branching; e.g., the following instructions result in the content at location a being added to the content at location b:
    ADD a, b == subleq a, Z
                subleq Z, b
                subleq Z, Z
The first instruction subtracts the content at location a from the content at location Z (which is 0) and stores the result (which is the negative of the content at a) in location Z. The second instruction subtracts this result from b, storing in b this difference (which is now the sum of the contents originally at a and b); the third instruction restores the value 0 to Z.
A copy instruction can be implemented similarly; e.g., the following instructions result in the content at location b getting replaced by the content at location a, again assuming the content at location Z is maintained as 0:
    MOV a, b == subleq b, b
                subleq a, Z
                subleq Z, b
                subleq Z, Z
Any desired arithmetic test can be built. For example, a branch-if-zero condition can be assembled from the following instructions:
    BEQ b, c == subleq b, Z, L1
                subleq Z, Z, OUT
            L1: subleq Z, Z
                subleq Z, b, c
           OUT: ...
Subleq2 can also be used to synthesize higher-order instructions, although it generally requires more operations for a given task. For example no fewer than 10 subleq2 instructions are required to flip all the bits in a given byte:
    NOT a == subleq2 tmp          ; tmp = 0 (tmp = temporary register)
             subleq2 tmp
             subleq2 minus_one    ; acc = -1
             subleq2 a            ; a' = a + 1
             subleq2 Z            ; Z = - a - 1
             subleq2 tmp          ; tmp = a + 1
             subleq2 a            ; a' = 0
             subleq2 tmp          ; load tmp into acc
             subleq2 a            ; a' = - a - 1 ( = ~a )
             subleq2 Z            ; set Z back to 0
sr. member
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
I found a language with only 8 opcodes but i'm not sure that this will
be a good for your needs as the language is completely f*d up and if you uset it can f**k up your brain.
Smiley

I called brain fuck.
http://www.muppetlabs.com/~breadbox/bf/


Brainfuck requires too much memory.
I found turing complete langauges with ONE opcode!?
http://en.wikipedia.org/wiki/One_instruction_set_computer

Holy shit.
legendary
Activity: 1176
Merit: 1134
I found a language with only 8 opcodes but i'm not sure that this will
be a good for your needs as the language is completely f*d up and if you uset it can f**k up your brain.
Smiley

I called brain fuck.
http://www.muppetlabs.com/~breadbox/bf/


Brainfuck requires too much memory.
I found turing complete langauges with ONE opcode!?
http://en.wikipedia.org/wiki/One_instruction_set_computer
full member
Activity: 182
Merit: 100
NXT.org


looks like a fancy chocolate birthday cake

While I commend you for your work, I am wondering what is this for specifically?

I thought we all agreed that coins and similar representations should not be a thing in NXT?
NXTs logo is all we really need? Why do we need a geometric shape?
legendary
Activity: 1176
Merit: 1134
Why not? Ethereum code could send transactions. Sounds legit to me.

If you say, external data should be embedded into the blockchain then u use an external interface to get this data.

Internal is just the 'memory'. The RAM of the virtual env.

If u let scripts to ask for data from external world then u won't be able to achieve 1000 tps. External world is supposed to push data into the blockchain, scripts pulling the data from external world is a bad way.
So the script will be able to access any AM in the blockchain. The app needs to seed the script with the required block#, etc.
Will the scripts have an easy way to access alias data also? If so, that could be another way to pass data to the script
sr. member
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
(Regarding going beyond NXT, say Email or other external services... I don't know. But would like to have them just in case.)

I see it this way:

1. Script composes email and stores as AM.
2. External service takes the email and sends it.

In case size of email is bigger than AM does it get splited in more AMs?

Can it be made that the AM only contains the email header data
and the body part with message and  
attachments is send off chain to the service provider
and then like mentioned above the service process the email further on?!


Think, we will have file sharing blockchain anyway.
hero member
Activity: 1115
Merit: 535
(Regarding going beyond NXT, say Email or other external services... I don't know. But would like to have them just in case.)

I see it this way:

1. Script composes email and stores as AM.
2. External service takes the email and sends it.

In case size of email is bigger than AM does it get splited in more AMs?

Can it be made that the AM only contains the email header data
and the body part with message and  
attachments is send off chain to the service provider
and then like mentioned above the service process the email further on?!
sr. member
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
(Regarding going beyond NXT, say Email or other external services... I don't know. But would like to have them just in case.)

I see it this way:

1. Script composes email and stores as AM.
2. External service takes the email and sends it.

Valid.
legendary
Activity: 2142
Merit: 1010
Newbie
(Regarding going beyond NXT, say Email or other external services... I don't know. But would like to have them just in case.)

I see it this way:

1. Script composes email and stores as AM.
2. External service takes the email and sends it.
legendary
Activity: 2142
Merit: 1010
Newbie
I found a language with only 8 opcodes but i'm not sure that this will
be a good for your needs as the language is completely f*d up and if you uset it can f**k up your brain.
Smiley

I called brain fuck.
http://www.muppetlabs.com/~breadbox/bf/


Brainfuck requires too much memory.
sr. member
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
How many unique opcodes here?

28 opcodes for that one.  It is only a starting point, though.

No, that's not right.  It's been a long time since I last looked at that code.  It's more, have to re-look.

Very good if it's 28, coz I know only a solution with 32 opcodes.

I found a language with only 8 opcodes but i'm not sure that this will
be a good for your needs as the language is completely f*d up and if you uset it can f**k up your brain.
Smiley

I called brain fuck.
http://www.muppetlabs.com/~breadbox/bf/


Wink

Yeah, you can have Turing's proposal. That really sucks.
sr. member
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
Why not? Ethereum code could send transactions. Sounds legit to me.

If you say, external data should be embedded into the blockchain then u use an external interface to get this data.

Internal is just the 'memory'. The RAM of the virtual env.

If u let scripts to ask for data from externat world then u won't be able to achieve 1000 tps. External world is supposed to push data into the blockchain, scripts pulling the data from external world is a bad way.

You already answered jl777's question with that it should be possible to access env-outside data.

To me, the virtual env is inside and everything beyond that is outside. So, the blockchain is like an SSD holding more data to be read by the program.

We need special access functions/ops or memory blocks for that.

(Regarding going beyond NXT, say Email or other external services... I don't know. But would like to have them just in case.)
hero member
Activity: 1115
Merit: 535
How many unique opcodes here?

28 opcodes for that one.  It is only a starting point, though.

No, that's not right.  It's been a long time since I last looked at that code.  It's more, have to re-look.

Very good if it's 28, coz I know only a solution with 32 opcodes.

I found a language with only 8 opcodes but i'm not sure that this will
be a good for your needs as the language is completely f*d up and if you uset it can f**k up your brain.
Smiley

I called brain fuck.
http://www.muppetlabs.com/~breadbox/bf/
legendary
Activity: 2142
Merit: 1010
Newbie
Why not? Ethereum code could send transactions. Sounds legit to me.

If you say, external data should be embedded into the blockchain then u use an external interface to get this data.

Internal is just the 'memory'. The RAM of the virtual env.

If u let scripts to ask for data from external world then u won't be able to achieve 1000 tps. External world is supposed to push data into the blockchain, scripts pulling the data from external world is a bad way.
sr. member
Activity: 336
Merit: 250
AKA jefdiesel


looks like a fancy chocolate birthday cake
legendary
Activity: 2142
Merit: 1010
Newbie
Will a script be able to store data into an AM and then be able to access it a future block?
Data continuity is needed for scripts that interact with external blockchains.

Yes, a script will be able to store any data via AM.
sr. member
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
Well, okay. You could pay per operation.

Yes, I like it too.

More importantly, we need to define its external interfaces.

Say:

In NXT:
transactions allowed?
messages allowed?
etc.

Even further:
emails allowed?
tweets allowed?
etc.

External interfaces r not allowed. If a script needs external data then it should be embedded into the blockchain using AM, aliases or something else.

Why not? Ethereum code could send transactions. Sounds legit to me.

If you say, external data should be embedded into the blockchain then u use an external interface to get this data.

Internal is just the 'memory'. The RAM of the virtual env.
member
Activity: 112
Merit: 10
Anyone know when version 0.6.0 comes out and that would change? Smiley
I am eager!
legendary
Activity: 2142
Merit: 1010
Newbie
How many unique opcodes here?

28 opcodes for that one.  It is only a starting point, though.

No, that's not right.  It's been a long time since I last looked at that code.  It's more, have to re-look.

Very good if it's 28, coz I know only a solution with 32 opcodes.
Jump to: