Pages:
Author

Topic: Qora | 100% POS | Assets | Names | Voting | Open Source - page 57. (Read 113833 times)

sr. member
Activity: 318
Merit: 250
Ok, here are some quick notes on Qora v. Nxt (I've looked at both sets of code a little while this evening.)

Initial Impressions

I can not rule out, beyond certainty, that this wasn't cloned but I can easily verify that if this started from a Nxt fork, a TON of work has been put in modifying the code.  Qora is organized completely differently than Nxt.  From the application entry point, all initialization methods execute completely differently.  If Qora took Nxt, he heavily modified it beyond recognition.

Personally, I've suspected that this wasn't a clone and I've never seen any reason not to trust Qora's claims.  So far, this seems to be likely true-- this is not a fork and is "new source".

Cryptography Analysis

Nxt uses SHA-256 to hash passphrases and then Curve25519 and SHA-256 again to create public/private key.  It signs it's data using, EC-KCDSA.

Qora is a bit of a different beast.  I'm still digging into this section of code but if my quick-scan of DB, Crypto and Account files has produced an accurate understanding, your wallet seed is a random value, stored to a secure DB. Each time a new account is generated, a nonce is appended to the the seed, and a new address is calculated and stored in the DB.

Specifically, an address account is generated by taking the Nonce+seed+Nonce value and double-SHA-256 hashing it to produce a unique account seed.

Next, a Key pair is generated using Ed25519 key pair creation, from the account seed.  To be clear, Ed25519 is slightly different than Curve25519 (which is what Nxt uses.)  After the Pub/Privkey pair is generated,the application takes the RIPEMD160 of the SHA-256 hash of the pub-key.  NExt, Qora prepends a version byte to this hash and then double, SHA-256 hashes the byte array and finally appends the first four bytes of the new hash, to the former.  These last four bytes are used as an account checksum and are used for account ID validation.

This process of a account generation is significantly different than Nxt.  Obviously, Qora makes use of a wallet, where Nxt does not.  Still, the process of creating a payment address is far more robust than Nxt.  In fact, this process is almost-exactly how BTC addresses are created, rather than Nxt.  The only variation is that the version byte is likely different (which results in the "Q" at the beginning of the address) and Ed25519 keys are used by Qora where ECDSA keys are used by BTC and it's clones.

Forging

First, let me go ahead and say that forging is something that I've never looked into deeply. I  understand the very high-level nature of it and I very much understand the big differences between traditional "1.0" coins and these new PoS "2.0" coins.  My notes on forging will, therefore, be very basic sense I know so little about the nuts-and-bolts.  Regardless, here are my observations.

The code is significantly organized in a different manner.  At first glance, I think Nxt and Qora us a completely different approach to come up with similar results.  Again, Qora is more succinct than Nxt.  I'll have to take a while longer to dig into this but since I can't seem to figure out how to build and debug java code through eclipse (Tongue yeah, pretty basic stuff, I know...) I can't run the code and step through this portion to clarify what's going on.  All I can verify is that Nxt vs. Qora looks completely different.  Also, Qora makes use of the global "Generating Balance" to determine the block Target.  From my scan of the Nxt code, no such value is used.  I think there is a bit more randomness to Nxt than their might be of Qora, but I won't stand by that.  Qora basically looks at the time since the last block, the forgers personal balance and the total balance of forging accounts.  It then uses a fairly straight forward process to test if a block has been forged.

I haven't been able to figure out what Nxt does.  This isn't because of poor Nxt coding.  It's because I don't have the time to look into it.  If a Nxt guru is around, please comment.

Final Thoughts

My vote is, no, this is not a clone.  If Qora was inspired by Nxt, I would make the guess that he read up a lot on it, possibly read through the source and thought "I can do that" and gave it a go at writing his own application.  Qora uses mostly different libraries and is structured significantly different.  

I also assume that Qora is a professional day-time coder, who works with a team of devs at a software firm or possibly large company.  Nxt feels like good, solid code, but it doesn't adhere to strict practices that big-team developers tend to follow since they are use to having to organize and share  code with co-workers.  I know that open source projects are often shared across devs, but having worked in both environments I can attest that "good" developers, in both areas of software engineering tend to have different coding approaches and styles because requirements differ.  Qora feels like it's written by an experienced, professional business coder, while Nxt feels like a large, open source project.

One piece of software isn't necessarily better than the other but they look VERY different.  This adds to strong evidence supporting that this is almost certainly NOT a clone.
thanks for telling us about that,
qora is unique.
legendary
Activity: 924
Merit: 1000

If I recall correctly, Nxt does implement the servlet through Jetty but the pages are dynamic through JavaScript.

JavaScript (JQuery for example) can server dynamic content.

Here is a tutorial on how to make a simple jetty web app.This could be a good starting point for creating a wallet.Then the JQuery will make API calls to Qora wallet and an HTML wallet can be real.
Then Bootstrap can be integrated as well to make the HTML wallet more "fancy".

Thanks for the link!
legendary
Activity: 1428
Merit: 1000
If you might be interested in working with something new, PM me and I'll tell you my top-secret killer app project.  I need to tell someone.  I'm tired of being silent, even if I never finish this thing.

I will tell you my idea which can be easily deployed on top of Qora and serve us all.

As I said in my previous post, by using Jetty (i.e. to deploy a web app ) you can have an HTML based app which interacts directly with Qora wallet via API.
Then by using a base58 encoder / decoder you can store content to block chain and retrieve it as well.So actually this can be the base for a decentralized web.You can encode / decode HTML content from blockchain.
Actually this is just a first approach on this concept which can really exist on top of Qora.A more advanced development on this would be needed in order to have this one more efficient (i.e. a customized language for "compressing" HTML tags ).
But a microblogging platform would be a much more easier approach to start working on this concept.


do it!!
sr. member
Activity: 363
Merit: 250
I'll tell you my top-secret killer app project.

legendary
Activity: 1428
Merit: 1000
@Qora i know the wallets are not public now but if we were to get someone to work on a new wallet design would you provide that to them privately?

The current GUI is build in Swing.
Everything should be reevaluated and rewritten in something more suitable.

What would be better than Swing?

My vote is a separate http servlet, serving static pages.  I know this is what Nxt does but it's easy to do and easy to make beautiful.

+1

Jetty can do that, and is already on Qora

If I recall correctly, Nxt does implement the servlet through Jetty but the pages are dynamic through JavaScript.

JavaScript (JQuery for example) can server dynamic content.

Here is a tutorial on how to make a simple jetty web app.This could be a good starting point for creating a wallet.Then the JQuery will make API calls to Qora wallet and an HTML wallet can be real.
Then Bootstrap can be integrated as well to make the HTML wallet more "fancy".

We can start a Git repo for that and start the deployment of this "wallet"  Grin


EDIT : Also here is a more experienced block explorer for Qora which is based on Node.js. This one can be used as well to develop a wallet based on Node.js

I have pledged 1 btc to get a nice looking wallet design made by bitcrea.

How would doing this method instead of the current wallet skin chnage how he should design the wallet?
sr. member
Activity: 351
Merit: 250
If you might be interested in working with something new, PM me and I'll tell you my top-secret killer app project.  I need to tell someone.  I'm tired of being silent, even if I never finish this thing.

I will tell you my idea which can be easily deployed on top of Qora and serve us all.

As I said in my previous post, by using Jetty (i.e. to deploy a web app ) you can have an HTML based app which interacts directly with Qora wallet via API.
Then by using a base58 encoder / decoder you can store content to block chain and retrieve it as well.So actually this can be the base for a decentralized web.You can encode / decode HTML content from blockchain.
Actually this is just a first approach on this concept which can really exist on top of Qora.A more advanced development on this would be needed in order to have this one more efficient (i.e. a customized language for "compressing" HTML tags ).
But a microblogging platform would be a much more easier approach to start working on this concept.
sr. member
Activity: 484
Merit: 251
Bounty
I am pledging to donate 100 million qora of forging power for 2 months to the first forging pool.
Example: http://pool.nxtcrypto.org/

It's not possible to escrow/treasure this bounty due to its nature.
sr. member
Activity: 351
Merit: 250
@Qora i know the wallets are not public now but if we were to get someone to work on a new wallet design would you provide that to them privately?

The current GUI is build in Swing.
Everything should be reevaluated and rewritten in something more suitable.

What would be better than Swing?

My vote is a separate http servlet, serving static pages.  I know this is what Nxt does but it's easy to do and easy to make beautiful.

+1

Jetty can do that, and is already on Qora

If I recall correctly, Nxt does implement the servlet through Jetty but the pages are dynamic through JavaScript.

JavaScript (JQuery for example) can server dynamic content.

Here is a tutorial on how to make a simple jetty web app.This could be a good starting point for creating a wallet.Then the JQuery will make API calls to Qora wallet and an HTML wallet can be real.
Then Bootstrap can be integrated as well to make the HTML wallet more "fancy".

We can start a Git repo for that and start the deployment of this "wallet"  Grin


EDIT : Also here is a more experienced block explorer for Qora which is based on Node.js. This one can be used as well to develop a wallet based on Node.js
legendary
Activity: 924
Merit: 1000
Congrats to qora for making it OpenSource. Now I am sure nobody will be able to say that qora is a nxt clone. Soon AT will be also launched and added to the repo. I will try to synchronize both releases of AT (qora and burst) so we can also run some atomic cross chain txs. Burst version ( as it is a nxt clone ) is also almost ready, Qora needs some work but is almost ready.  Also, while integrating AT in qora platform we added more functionality (new op codes), you can check the documentation in www.ciyam.org/at to see more info.



Just to let you know. NFD has AT in private testnet right now. Could you work NFD into your synch tests once our AT goes into public testnet?

"The more the merrier!"  Grin

Thanks.  Smiley

Hi,

Firstly I am very glad to see btc2nxt is integrating AT into NFD also. You should be aware that also Burst's version is ready and probably will go on main net this or next week. I need to point some things. AT has been updated with 3 new op codes, so please tell btc2nxt to add these, so we have consistency between the ATs. Also many bugs have been fixed ( some of them are critical ) which you need also to fix before main net. I know btc2nxt is working with an older AT version, and since we have some weeks to speak he is not aware of the changes.

Best regards,

-vbcs

Thanks for your reply; I sent your post to btc2nxt. Nice news about BURST...it's definitely "time to railroad", as the old saying has it.
legendary
Activity: 924
Merit: 1000
@Qora i know the wallets are not public now but if we were to get someone to work on a new wallet design would you provide that to them privately?

The current GUI is build in Swing.
Everything should be reevaluated and rewritten in something more suitable.

What would be better than Swing?

My vote is a separate http servlet, serving static pages.  I know this is what Nxt does but it's easy to do and easy to make beautiful.

+1

Jetty can do that, and is already on Qora

If I recall correctly, Nxt does implement the servlet through Jetty but the pages are dynamic through JavaScript.
sr. member
Activity: 351
Merit: 250
@Qora i know the wallets are not public now but if we were to get someone to work on a new wallet design would you provide that to them privately?

The current GUI is build in Swing.
Everything should be reevaluated and rewritten in something more suitable.

What would be better than Swing?

My vote is a separate http servlet, serving static pages.  I know this is what Nxt does but it's easy to do and easy to make beautiful.

+1

Jetty can do that, and is already on Qora
rlh
hero member
Activity: 804
Merit: 1004
@Qora i know the wallets are not public now but if we were to get someone to work on a new wallet design would you provide that to them privately?

The current GUI is build in Swing.
Everything should be reevaluated and rewritten in something more suitable.

What would be better than Swing?

My vote is a separate http servlet, serving static pages.  I know this is what Nxt does but it's easy to do and easy to make beautiful.
full member
Activity: 137
Merit: 100
AT - Automated Transactions - CIYAM Developer
Congrats to qora for making it OpenSource. Now I am sure nobody will be able to say that qora is a nxt clone. Soon AT will be also launched and added to the repo. I will try to synchronize both releases of AT (qora and burst) so we can also run some atomic cross chain txs. Burst version ( as it is a nxt clone ) is also almost ready, Qora needs some work but is almost ready.  Also, while integrating AT in qora platform we added more functionality (new op codes), you can check the documentation in www.ciyam.org/at to see more info.



Just to let you know. NFD has AT in private testnet right now. Could you work NFD into your synch tests once our AT goes into public testnet?

"The more the merrier!"  Grin

Thanks.  Smiley

Hi,

Firstly I am very glad to see btc2nxt is integrating AT into NFD also. You should be aware that also Burst's version is ready and probably will go on main net this or next week. I need to point some things. AT has been updated with 3 new op codes, so please tell btc2nxt to add these, so we have consistency between the ATs. Also many bugs have been fixed ( some of them are critical ) which you need also to fix before main net. I know btc2nxt is working with an older AT version, and since we have some weeks to speak he is not aware of the changes.

Best regards,

-vbcs
legendary
Activity: 924
Merit: 1000
@Qora i know the wallets are not public now but if we were to get someone to work on a new wallet design would you provide that to them privately?

The current GUI is build in Swing.
Everything should be reevaluated and rewritten in something more suitable.

What would be better than Swing?
legendary
Activity: 924
Merit: 1000
Congrats to qora for making it OpenSource. Now I am sure nobody will be able to say that qora is a nxt clone. Soon AT will be also launched and added to the repo. I will try to synchronize both releases of AT (qora and burst) so we can also run some atomic cross chain txs. Burst version ( as it is a nxt clone ) is also almost ready, Qora needs some work but is almost ready.  Also, while integrating AT in qora platform we added more functionality (new op codes), you can check the documentation in www.ciyam.org/at to see more info.



Just to let you know. NFD has AT in private testnet right now. Could you work NFD into your synch tests once our AT goes into public testnet?

"The more the merrier!"  Grin

Thanks.  Smiley
legendary
Activity: 1274
Merit: 1000
★ BitClave ICO: 15/09/17 ★
If you need a Turkish Translation for ANN Thread, Just send me a pm.
I can do it for 0.01 BTC or equivalent Qora.
full member
Activity: 231
Merit: 100
@Qora i know the wallets are not public now but if we were to get someone to work on a new wallet design would you provide that to them privately?

The current GUI is build in Swing.
Everything should be reevaluated and rewritten in something more suitable.
rlh
hero member
Activity: 804
Merit: 1004
Bounty
I am pledging 1.5 million qora to the first "PoW mining pool" to "mine" Qora.
Example: http://hashrate.org/
A treasurer/escrower for this is necessary, as well as more donation from other people.
Hmm, tempting


PF, how big does the bounty need to be for you to do this? I'm willing to open my war chest, but it's not going to be for any old shmoe.

Is Hashrate.org designed to be expandable to other coins?
legendary
Activity: 1428
Merit: 1000
I am in the process of asking Bitcrea to make a new wallet design for Qora.

I will be donating some BTC and or Qora to this task but is anyone in the community wanting to donate for this task?
legendary
Activity: 938
Merit: 1000
Bounty
I am pledging 1.5 million qora to the first "PoW mining pool" to "mine" Qora.
Example: http://hashrate.org/
A treasurer/escrower for this is necessary, as well as more donation from other people.
Hmm, tempting


Whats the current value?
Pages:
Jump to: