elective-stereophonic
elective-stereophonic
[ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core singapore
Please login or register.

Login with username, password and session length
Advanced search  

News:

Latest Stable Nxt Client: Nxt 1.12.2

Pages: 1 2 3 [All]

Author Topic: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core  (Read 11254 times)

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger

NXT+ PROJECT SITE

http://fimkchat.com/2015/04/nxt-giving-back-in-an-open-source-way/

NXT+ is a third-party extension to NXT (currently based of version 1.5.15) initially created for FIMKrypto then backported to NXT for use in mofowallet.

Typical users of NXT+ would be technology providers who work with NXT and are looking for more or better ways of interfacing with NXT.

Potential users are exchanges, wallet creators, asset exchange automators or observers, payment processors or anyone building a business on NXT.

NXT+ adds an important missing ingredient to NXT which is realtime connectivity. Where other crypto currencies require complex third party services to enable realtime connectivity, with NXT and how it's setup (or maybe a better word would be foreseen  ;)) this can be built right into the core.

I'm a technologist and have gradually become a full-timer in NXT tech.
Hopefully NXT+ can help you with your next or current project I sure would not mind discussing it, I might even learn something from our discussions.

The plan is to keep NXT+ in sync with main NXT and update it whenever a new release comes along.

I'm very busy and have a lot of work, all eyes, help or tips with regard to the project is more than welcome.

Dirk
« Last Edit: September 07, 2015, 03:07:12 pm by verymuchso »
Logged
HEAT: DEX | SDK | HOME

yassin54

  • Hero Member
  • *****
  • Karma: +240/-14
  • Offline Offline
  • Posts: 2503
  • I am Homer, Sorry my english is Bad!!
    • View Profile

Very Nice News!  :)
thanks for all project. ;)

NxtSwe

  • Hero Member
  • *****
  • Karma: +124/-9
  • Offline Offline
  • Posts: 657
    • View Profile

Wow, awsome job!
That's quite the commit you have there (NXT-PLUS in one commit). I browsed through half of it and you seem to have put down quite a bit of work on this modification.
What's the state of the code right now? Alpha/Beta/Stable?

I hope it won't be too much work for you to keep pace with the core devs.
I once ported the NRS client to C#, but so much change after every major version release I could not keep up with the updates.
I hope you have more time to do that kind of tedious and unthankful task.

Keep it up!
Logged
Check out the NxtLib, the .NET Framework API for the Nxt platform.

ThomasVeil

  • Hero Member
  • *****
  • Karma: +183/-11
  • Offline Offline
  • Posts: 1400
    • View Profile

Heh, I don't get it - too techy. Though it sound impressive :D
Is that feature added to the NXT coins, or is it a new core with new chain?
What is a use-case of this connection thing?
Logged
ARDOR-BPV3-837M-QZTQ-9DQ69  oxpal.com

NxtSwe

  • Hero Member
  • *****
  • Karma: +124/-9
  • Offline Offline
  • Posts: 657
    • View Profile

Heh, I don't get it - too techy. Though it sound impressive :D
Is that feature added to the NXT coins, or is it a new core with new chain?
What is a use-case of this connection thing?

It's a modification of the NRS code base, where you can hook in "listeners" of events. And I agree with you, this is a techy thingie.

For example, let's say you are the developer for an exchange that use NXT and you want to know when a new transaction comes in to show it to your customer on your site.
Today you'll have to poll the NRS client, asking it every 10-20 seconds with the "getUnconfirmedTransactions" api function, and filtering out transactions that you already know about.
With NXT PLUS you can subscribe to the "addedUnconfirmedTransactions" event and the NRS code will, in real time let your code know that a new unconfirmed transaction has arrived.

There's lots of technical advantages with the second approach:
- You can show the transaction on your site in real time, instead of having to wait x seconds until your next poll.
- Not as complex code for you to write when you know that the transaction you recieve is indeed a new transaction and thus no special handling is required.

The big benefit comes in when you need to handle blocks, forks, knowing what transactions that got included in the new chain, etc. Those technical advantages you got from using NXT PLUS is really helping you out then.

PS. I have nothing to do with this project, I just found out about it yesterday, but these are the advantages I see.
Logged
Check out the NxtLib, the .NET Framework API for the Nxt platform.

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

Heh, I don't get it - too techy. Though it sound impressive :D
Is that feature added to the NXT coins, or is it a new core with new chain?
What is a use-case of this connection thing?

It's a modification of the NRS code base, where you can hook in "listeners" of events. And I agree with you, this is a techy thingie.

For example, let's say you are the developer for an exchange that use NXT and you want to know when a new transaction comes in to show it to your customer on your site.
Today you'll have to poll the NRS client, asking it every 10-20 seconds with the "getUnconfirmedTransactions" api function, and filtering out transactions that you already know about.
With NXT PLUS you can subscribe to the "addedUnconfirmedTransactions" event and the NRS code will, in real time let your code know that a new unconfirmed transaction has arrived.

There's lots of technical advantages with the second approach:
- You can show the transaction on your site in real time, instead of having to wait x seconds until your next poll.
- Not as complex code for you to write when you know that the transaction you recieve is indeed a new transaction and thus no special handling is required.

The big benefit comes in when you need to handle blocks, forks, knowing what transactions that got included in the new chain, etc. Those technical advantages you got from using NXT PLUS is really helping you out then.

PS. I have nothing to do with this project, I just found out about it yesterday, but these are the advantages I see.
why polling at 20 seconds?
access to localhost is very fast, you can poll multiple times per second without any problems
still a push type of interface would have good use cases
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

NxtSwe

  • Hero Member
  • *****
  • Karma: +124/-9
  • Offline Offline
  • Posts: 657
    • View Profile

why polling at 20 seconds?
access to localhost is very fast, you can poll multiple times per second without any problems
still a push type of interface would have good use cases

Bah you ruined my example! :P
Logged
Check out the NxtLib, the .NET Framework API for the Nxt platform.

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile

why polling at 20 seconds?
access to localhost is very fast, you can poll multiple times per second without any problems
still a push type of interface would have good use cases

Bah you ruined my example! :P
sorry, just trying to be accurate.
Not sure if it can be used to create notifications for specific transactions that pass a filter. If so, then it would be a locally running alert service for things like getting a transaction (or a dividend via built in dividend command), etc
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

NxtSwe

  • Hero Member
  • *****
  • Karma: +124/-9
  • Offline Offline
  • Posts: 657
    • View Profile

why polling at 20 seconds?
access to localhost is very fast, you can poll multiple times per second without any problems
still a push type of interface would have good use cases

Bah you ruined my example! :P
sorry, just trying to be accurate.
Not sure if it can be used to create notifications for specific transactions that pass a filter. If so, then it would be a locally running alert service for things like getting a transaction (or a dividend via built in dividend command), etc

It looks like it can:
Quote
addedUnconfirmedTransactions-FIM-5PGB-BFNZ-KCSF-9XJWB Forwards event ADDED_UNCONFIRMED_TRANSACTIONS but only for transactions that have the added account as recipient or sender.
http://fimkrypto.github.io/nxt-plus-site/2015/03/30/realtime-network-events.html
Logged
Check out the NxtLib, the .NET Framework API for the Nxt platform.

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger

Heh, I don't get it - too techy. Though it sound impressive :D
Is that feature added to the NXT coins, or is it a new core with new chain?
What is a use-case of this connection thing?

It's a modification of the NRS code base, where you can hook in "listeners" of events. And I agree with you, this is a techy thingie.

For example, let's say you are the developer for an exchange that use NXT and you want to know when a new transaction comes in to show it to your customer on your site.
Today you'll have to poll the NRS client, asking it every 10-20 seconds with the "getUnconfirmedTransactions" api function, and filtering out transactions that you already know about.
With NXT PLUS you can subscribe to the "addedUnconfirmedTransactions" event and the NRS code will, in real time let your code know that a new unconfirmed transaction has arrived.

There's lots of technical advantages with the second approach:
- You can show the transaction on your site in real time, instead of having to wait x seconds until your next poll.
- Not as complex code for you to write when you know that the transaction you recieve is indeed a new transaction and thus no special handling is required.

The big benefit comes in when you need to handle blocks, forks, knowing what transactions that got included in the new chain, etc. Those technical advantages you got from using NXT PLUS is really helping you out then.

PS. I have nothing to do with this project, I just found out about it yesterday, but these are the advantages I see.
why polling at 20 seconds?
access to localhost is very fast, you can poll multiple times per second without any problems
still a push type of interface would have good use cases

Constantly polling localhost multiple times per second sure leads to a hot CPU, but what API to use? You need unconfirmed txns, confiremed txns and then they are constantly switched about from confirmed to unconfiremed when your node is switching forks. So when polling you basically need to constantly poll txns, unconfirmed txns, and blocks, thats already 3 API calls.

As NxtSwe says a push based arcitecture allows for much cleaner code, I was able to throw out roughly half the code of mofowallet simply by switching to an event based system. Plus it leads to the situation where each piece of data in mofowallet now is updated in realtime without the need to write any polling code.

What is not in the docs is there are also peer events available. I've copied the part from mofowallet that uses it for any one interested..

http://paste.ubuntu.com/10716694/
Logged
HEAT: DEX | SDK | HOME

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #10 on: April 01, 2015, 07:21:35 am »

What's the state of the code right now? Alpha/Beta/Stable?

We are using this code in production and are actively working on it for use in mofowallet.
The same code is used in FIMK which is also actively being worked on. I figured now that we made this it might help others to.

We have NXT+ running on our servers so you dont need to compile it to try it out.
See this little sample of connecting to the sockets from javascripts it contains everything needed. http://jsfiddle.net/dirkdiggler/o1z94adn/

The FIMKSocket lib is just a reference wrapper created for the samples, it can be found here https://gist.github.com/fimkrypto/916fc1da11dd2877ab18
Logged
HEAT: DEX | SDK | HOME

coinomat

  • Hero Member
  • *****
  • Karma: +214/-18
  • Offline Offline
  • Posts: 1520
    • View Profile
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #11 on: April 01, 2015, 07:38:54 am »

very interesting stuff, especially real-time websocket connectivity.
Logged
Time to go further

semibaron

  • Sr. Member
  • ****
  • Karma: +16/-7
  • Offline Offline
  • Posts: 333
    • View Profile
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #12 on: April 01, 2015, 09:29:18 am »

Heh, I don't get it - too techy. Though it sound impressive :D
Is that feature added to the NXT coins, or is it a new core with new chain?
What is a use-case of this connection thing?

It's a modification of the NRS code base, where you can hook in "listeners" of events. And I agree with you, this is a techy thingie.

For example, let's say you are the developer for an exchange that use NXT and you want to know when a new transaction comes in to show it to your customer on your site.
Today you'll have to poll the NRS client, asking it every 10-20 seconds with the "getUnconfirmedTransactions" api function, and filtering out transactions that you already know about.
With NXT PLUS you can subscribe to the "addedUnconfirmedTransactions" event and the NRS code will, in real time let your code know that a new unconfirmed transaction has arrived.

There's lots of technical advantages with the second approach:
- You can show the transaction on your site in real time, instead of having to wait x seconds until your next poll.
- Not as complex code for you to write when you know that the transaction you recieve is indeed a new transaction and thus no special handling is required.

The big benefit comes in when you need to handle blocks, forks, knowing what transactions that got included in the new chain, etc. Those technical advantages you got from using NXT PLUS is really helping you out then.

PS. I have nothing to do with this project, I just found out about it yesterday, but these are the advantages I see.
why polling at 20 seconds?
access to localhost is very fast, you can poll multiple times per second without any problems
still a push type of interface would have good use cases

Constantly polling localhost multiple times per second sure leads to a hot CPU, but what API to use? You need unconfirmed txns, confiremed txns and then they are constantly switched about from confirmed to unconfiremed when your node is switching forks. So when polling you basically need to constantly poll txns, unconfirmed txns, and blocks, thats already 3 API calls.

As NxtSwe says a push based arcitecture allows for much cleaner code, I was able to throw out roughly half the code of mofowallet simply by switching to an event based system. Plus it leads to the situation where each piece of data in mofowallet now is updated in realtime without the need to write any polling code.

What is not in the docs is there are also peer events available. I've copied the part from mofowallet that uses it for any one interested..

http://paste.ubuntu.com/10716694/


If it is so awesome, why don't make this the standard approach in NRS?
Logged

jl777

  • Hero Member
  • *****
  • Karma: +718/-123
  • Offline Offline
  • Posts: 6170
    • View Profile
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #13 on: April 01, 2015, 09:36:14 am »

Heh, I don't get it - too techy. Though it sound impressive :D
Is that feature added to the NXT coins, or is it a new core with new chain?
What is a use-case of this connection thing?

It's a modification of the NRS code base, where you can hook in "listeners" of events. And I agree with you, this is a techy thingie.

For example, let's say you are the developer for an exchange that use NXT and you want to know when a new transaction comes in to show it to your customer on your site.
Today you'll have to poll the NRS client, asking it every 10-20 seconds with the "getUnconfirmedTransactions" api function, and filtering out transactions that you already know about.
With NXT PLUS you can subscribe to the "addedUnconfirmedTransactions" event and the NRS code will, in real time let your code know that a new unconfirmed transaction has arrived.

There's lots of technical advantages with the second approach:
- You can show the transaction on your site in real time, instead of having to wait x seconds until your next poll.
- Not as complex code for you to write when you know that the transaction you recieve is indeed a new transaction and thus no special handling is required.

The big benefit comes in when you need to handle blocks, forks, knowing what transactions that got included in the new chain, etc. Those technical advantages you got from using NXT PLUS is really helping you out then.

PS. I have nothing to do with this project, I just found out about it yesterday, but these are the advantages I see.
why polling at 20 seconds?
access to localhost is very fast, you can poll multiple times per second without any problems
still a push type of interface would have good use cases

Constantly polling localhost multiple times per second sure leads to a hot CPU, but what API to use? You need unconfirmed txns, confiremed txns and then they are constantly switched about from confirmed to unconfiremed when your node is switching forks. So when polling you basically need to constantly poll txns, unconfirmed txns, and blocks, thats already 3 API calls.

As NxtSwe says a push based arcitecture allows for much cleaner code, I was able to throw out roughly half the code of mofowallet simply by switching to an event based system. Plus it leads to the situation where each piece of data in mofowallet now is updated in realtime without the need to write any polling code.

What is not in the docs is there are also peer events available. I've copied the part from mofowallet that uses it for any one interested..

http://paste.ubuntu.com/10716694/


If it is so awesome, why don't make this the standard approach in NRS?
compatibility issues
websockets is browser version specific, at least that is what I understand
Logged
There are over 1000 people in SuperNET slack! http://slackinvite.supernet.org/ automatically sends you an invite

I am just a simple C programmer

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #14 on: April 01, 2015, 10:43:09 am »

If it is so awesome, why don't make this the standard approach in NRS?
compatibility issues
websockets is browser version specific, at least that is what I understand

Thats not really an issue, websocket support is available in all modern browsers there might be a tiny percentage of old browsers that dont support it but there are even solutions for those.

What is a bigger compatibility issue imo is that NRS/HTML/Wesley/Supernet client? is basically unusable on mobile devices (which is 50+% of all browsers).
When creating mofowallet I figured that was a biggger compatibility issue to fix first.

This gives a good overview of browser compatibility http://caniuse.com/#search=websocket
Logged
HEAT: DEX | SDK | HOME

ThomasVeil

  • Hero Member
  • *****
  • Karma: +183/-11
  • Offline Offline
  • Posts: 1400
    • View Profile
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #15 on: April 01, 2015, 02:22:26 pm »

Thanks for the explanation NXTswe. Interesting tech.
Logged
ARDOR-BPV3-837M-QZTQ-9DQ69  oxpal.com

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #16 on: April 01, 2015, 05:15:41 pm »

very interesting stuff, especially real-time websocket connectivity.

Indeed it is interesting :D let me know if you have any trouble using it.
Logged
HEAT: DEX | SDK | HOME

m19

  • Jr. Member
  • **
  • Karma: +10/-0
  • Offline Offline
  • Posts: 65
    • View Profile
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #17 on: April 01, 2015, 06:22:27 pm »

Great! Funny thing, one day before you committed the changes to Github I was manually porting the FIMK websocket code to my local NXT repository. Had some errors and wanted to continue today, but now it's all there already!
Awesome work guys.

I'd also argue stuff like this should be in the core. "Pulling" data is not really 2015 anymore. With websockets + longpolling you'd probably have compatibility for 99% of the users.
Logged

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #18 on: April 01, 2015, 06:25:24 pm »

Funny thing, one day before you committed the changes to Github I was manually porting the FIMK websocket code to my local NXT repository. Had some errors and wanted to continue today, but now it's all there already!

Lol that sure is a coincidence, wanted to open source it earlier but as always to much to do and to little time.
You will be pushing back the improvements you make right?
Logged
HEAT: DEX | SDK | HOME

m19

  • Jr. Member
  • **
  • Karma: +10/-0
  • Offline Offline
  • Posts: 65
    • View Profile
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #19 on: April 01, 2015, 06:29:52 pm »

Funny thing, one day before you committed the changes to Github I was manually porting the FIMK websocket code to my local NXT repository. Had some errors and wanted to continue today, but now it's all there already!

Lol that sure is a coincidence, wanted to open source it earlier but as always to much to do and to little time.
You will be pushing back the improvements you make right?

I will, but don't expect anything. My java knowledge is limited, probably why I got the errors :)
Logged

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #20 on: April 01, 2015, 06:35:16 pm »

Funny thing, one day before you committed the changes to Github I was manually porting the FIMK websocket code to my local NXT repository. Had some errors and wanted to continue today, but now it's all there already!

Lol that sure is a coincidence, wanted to open source it earlier but as always to much to do and to little time.
You will be pushing back the improvements you make right?

I will, but don't expect anything. My java knowledge is limited, probably why I got the errors :)

Lets hope the errors are caused by that indeed.
Logged
HEAT: DEX | SDK | HOME

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #21 on: April 01, 2015, 06:36:24 pm »

If there is any interest in compiled binaries please let me know.
I could upload them to github and sign them with our FIMK pgp signature.
Logged
HEAT: DEX | SDK | HOME

m19

  • Jr. Member
  • **
  • Karma: +10/-0
  • Offline Offline
  • Posts: 65
    • View Profile
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #22 on: April 01, 2015, 06:42:57 pm »

Funny thing, one day before you committed the changes to Github I was manually porting the FIMK websocket code to my local NXT repository. Had some errors and wanted to continue today, but now it's all there already!

Lol that sure is a coincidence, wanted to open source it earlier but as always to much to do and to little time.
You will be pushing back the improvements you make right?

I will, but don't expect anything. My java knowledge is limited, probably why I got the errors :)

Lets hope the errors are caused by that indeed.

Jep, your version works fine here on localhost.
Logged

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger
Logged
HEAT: DEX | SDK | HOME

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #24 on: April 09, 2015, 02:17:12 pm »

While I was busy preparing a new mofowallet release I thought why not make the search functionality in mofowallet instant similar to how google search works (you type and you get instant results).
I thought this would surely be possible and would not be too difficult. It turned out to be just 15 lines of javascript  :D
Planning to release the downloadable version and an update to FIMK server tomorrow.

For now for anyone looking for Accounts, Assets, Aliases or anything on the Goods Store.

MofoWallet Instant Search

Secret hint ...
Wildcard search character for aliases is the % character.
For all other categories use * as the wild card character..

Wondering how it could work so fast?
Thats just plain NXT at work there.
Mofowallet is connected to an instance of NXT+ which is basically NXT 1.4.16 with some goodies added.

Have fun!
Logged
HEAT: DEX | SDK | HOME

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #25 on: April 13, 2015, 11:14:40 am »

Fixed some bugs.. And added some features needed by mofowallet..

Allow search for account and asset id
https://github.com/fimkrypto/nxt-plus/commit/b4e1085bcd5039e0c4b4029c79bf872832597639

Fix account-id filter in EventForwarder
This fixes the situation where you could not correctly register a websocket listener to be alerted only for certain accounts.
When registering a filtered event listener account ID has to be given in numeric form (this will be changed in the future)
https://github.com/fimkrypto/nxt-plus/commit/fd5a64e08d9bab0ec5f29727441725bc5f836a5f

Replace nxt.websocketSSL with nxt.apiSSL
Not a very big deal it just made things easier for our hosted servers
https://github.com/fimkrypto/nxt-plus/commit/d9daf848233cecf04144c3131ad8ef838930c345
https://github.com/fimkrypto/nxt-plus/commit/691d25e4d54192b4d04018316b8f9ab1a4b04fcf
Logged
HEAT: DEX | SDK | HOME

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger
Logged
HEAT: DEX | SDK | HOME

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger

Updated NXT+ to the latest NXT 1.5.9 which makes it work after the hard hard fork at 445.000.
https://github.com/fimkrypto/nxt-plus/commit/b2335f0057a513643a1066ea5435403af0868e29

This will mostly allow hosted mofowallet to remain working after the fork.
Downloadable mofowallet will be updated a little later when the new features for FIMK 0.5 have been completed.
Logged
HEAT: DEX | SDK | HOME

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger

cross post: https://bitcointalk.org/index.php?topic=633304.msg11803380#msg11803380

We are preparing the upcoming release, part of this release is NXT-PLUS based on 1.5.12 and with the virtual exchange (some explanation here) enabled.
Assets can be found by typing part of the name or description in the filter box.



Try it out here:
https://www.mofowallet.com/launch.html#/activity/nxt/assets/latest

The new UI is (at the moment) only available on hosted mofowallet, expect some downtime from time to time while we upload new versions.



Try it out here:
https://www.mofowallet.com/launch.html#/assets/nxt/12071612744977229797/trade

Theme switcher still available under settings menu, current default theme is named "Google", if you used hosted mofowallet before you will still have "Yeti" theme selected. This theme is named "Slate", total of 19 themes available.



The upcoming Private Assets feature (FIMK only) and the new Email Account Identifiers (FIMK only) are available in the java server code but have not been turned on yet. For this a hard fork is required which will likely be happening in the coming weeks.
Logged
HEAT: DEX | SDK | HOME

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger
Logged
HEAT: DEX | SDK | HOME

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger
Logged
HEAT: DEX | SDK | HOME

yassin54

  • Hero Member
  • *****
  • Karma: +240/-14
  • Offline Offline
  • Posts: 2503
  • I am Homer, Sorry my english is Bad!!
    • View Profile

Thank you!  :)

TylerJordan

  • Jr. Member
  • **
  • Karma: +5/-2
  • Offline Offline
  • Posts: 37
    • View Profile

Greetings,

I am trying to get a nxt-plus server going.  I can successfully get the normal nxt server running (1.5.13); but the nxt-plus keeps giving me the error: "Error: Could not find or load main class nxt.Nxt"

What I've done so far:

1.) git clone https://github.com/fimkrypto/nxt-plus   (no errors)
2.) cd nxt-plus
3.) ./compile.sh   (successful)
4.) ./run-tor.sh    (Error: Could not find or load main class nxt.Nxt)

what am I doing wrong? Is this a PATH error? If so, why does the normal nxt server launch?

edit:  okay so ./run-tor.sh doesn't work, but ./run.sh is launching ... however it stops within 3 seconds with this error:

2015-07-31 13:55:08 SEVERE: Database error executing CALL FTL_CREATE_INDEX('PUBLIC', 'ACCOUNT', 'NAME,DESCRIPTION')
java.lang.RuntimeException: Database error executing CALL FTL_CREATE_INDEX('PUBLIC', 'ACCOUNT', 'NAME,DESCRIPTION')
   at nxt.db.DbVersion.apply(DbVersion.java:83)
   at nxt.NxtDbVersion.update(NxtDbVersion.java:614)
   at nxt.db.DbVersion.init(DbVersion.java:55)
   at nxt.db.BasicDb.init(BasicDb.java:136)
   at nxt.Db.init(Db.java:39)
   at nxt.Nxt$Init.<clinit>(Nxt.java:324)
   at nxt.Nxt.init(Nxt.java:297)
   at nxt.Nxt.main(Nxt.java:284)
Caused by: org.h2.jdbc.JdbcSQLException: Unique index or primary key violation: "PRIMARY_KEY_9 ON FTL.INDEXES(SCHEMA, TABLE) VALUES ( /* key:2 */ 'PUBLIC', 'ACCOUNT', null)"; SQL statement:
INSERT INTO FTL.INDEXES(SCHEMA, TABLE, COLUMNS) VALUES(?, ?, ?) [23505-176]
   at org.h2.message.DbException.getJdbcSQLException(DbException.java:344)
   at org.h2.message.DbException.get(DbException.java:178)
   at org.h2.message.DbException.get(DbException.java:154)
   at org.h2.index.BaseIndex.getDuplicateKeyException(BaseIndex.java:103)
   at org.h2.index.PageBtree.find(PageBtree.java:121)
   at org.h2.index.PageBtreeLeaf.addRow(PageBtreeLeaf.java:151)
   at org.h2.index.PageBtreeLeaf.addRowTry(PageBtreeLeaf.java:104)
   at org.h2.index.PageBtreeIndex.addRow(PageBtreeIndex.java:97)
   at org.h2.index.PageBtreeIndex.add(PageBtreeIndex.java:88)
   at org.h2.index.MultiVersionIndex.add(MultiVersionIndex.java:59)
   at org.h2.table.RegularTable.addRow(RegularTable.java:120)
   at org.h2.command.dml.Insert.insertRows(Insert.java:157)
   at org.h2.command.dml.Insert.update(Insert.java:115)
   at org.h2.command.CommandContainer.update(CommandContainer.java:79)
   at org.h2.command.Command.executeUpdate(Command.java:254)
   at org.h2.jdbc.JdbcPreparedStatement.execute(JdbcPreparedStatement.java:199)
   at org.h2.fulltext.FullTextLucene.createIndex(FullTextLucene.java:139)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:497)
   at org.h2.engine.FunctionAlias$JavaMethod.getValue(FunctionAlias.java:481)
   at org.h2.expression.JavaFunction.getValue(JavaFunction.java:39)
   at org.h2.command.dml.Call.update(Call.java:48)
   at org.h2.command.CommandContainer.update(CommandContainer.java:79)
   at org.h2.command.Command.executeUpdate(Command.java:254)
   at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:132)
   at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:117)
   at nxt.db.FilteredStatement.executeUpdate(FilteredStatement.java:45)
   at nxt.db.TransactionalDb$DbStatement.executeUpdate(TransactionalDb.java:278)
   at nxt.db.DbVersion.apply(DbVersion.java:74)


my java info:

2015-07-31 14:03:31 FINE: java.version = 1.8.0_45
2015-07-31 14:03:31 FINE: java.vm.version = 25.45-b02
2015-07-31 14:03:31 FINE: java.vm.name = Java HotSpot(TM) 64-Bit Server VM
2015-07-31 14:03:31 FINE: java.vendor = Oracle Corporation
2015-07-31 14:03:31 FINE: java.vm.vendor = Oracle Corporation
2015-07-31 14:03:31 FINE: java.home = /usr/lib/jvm/java-8-oracle/jre
2015-07-31 14:03:31 FINE: java.library.path = /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2015-07-31 14:03:31 FINE: java.class.path = nxt.jar:lib/websocket-api-9.2.11.v20150529.jar:lib/slf4j-jdk14-1.7.7.jar:lib/jetty-servlet-9.2.11.v20150529.jar:lib/websocket-servlet-9.2.11.v20150529.jar:lib/websocket-server-9.2.11.v20150529.jar:lib/websocket-common-9.2.11.v20150529.jar:lib/h2-1.3.176.jar:lib/jetty-servlets-9.2.11.v20150529.jar:lib/jetty-security-9.2.11.v20150529.jar:lib/json-simple-1.1.1.jar:lib/jetty-io-9.2.11.v20150529.jar:lib/bcprov-jdk15on-152.jar:lib/websocket-client-9.2.11.v20150529.jar:lib/jetty-continuation-9.2.11.v20150529.jar:lib/lucene-core-3.6.2.jar:lib/slf4j-api-1.7.7.jar:lib/jetty-util-9.2.11.v20150529.jar:lib/weupnp-0.1.3.jar:lib/jetty-server-9.2.11.v20150529.jar:lib/servlet-api-3.1.jar:lib/jetty-http-9.2.11.v20150529.jar:conf


EDIT:  I've now also tried copying over the nxt_db from my working version of NRS 1.5.13  but I got the same result as above.

thanks for your help!

« Last Edit: July 31, 2015, 04:09:16 am by TylerJordan »
Logged

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger

Nxt-plus compiles to a jar instead of classes as nxt does, for this run.sh was changed, run-tor.sh i've never used so it still relies on classes.
I've updated run-tor.sh, now it should work.

https://github.com/fimkrypto/nxt-plus/blob/master/run-tor.sh
Logged
HEAT: DEX | SDK | HOME

TylerJordan

  • Jr. Member
  • **
  • Karma: +5/-2
  • Offline Offline
  • Posts: 37
    • View Profile

Thanks, that fixed the run-tor.sh.  It now launches, but only gets to the same point that the normal run.sh gets to --- just one or two seconds after launch the server stops. 

Maybe the error is in here?:

2015-08-01 00:53:33 FINE: Database jdbc url set to jdbc:h2:nxt_db/nxt;DB_CLOSE_ON_EXIT=FALSE;MVCC=TRUE;CACHE_SIZE=262144 username sa
2015-08-01 00:53:36 FINE: Database connection pool current size: 1
2015-08-01 00:53:36 INFO: Database update may take a while if needed, current db version 247...
2015-08-01 00:53:36 FINE: Database connection pool current size: 2
2015-08-01 00:53:36 FINE: Will apply sql:
CALL FTL_CREATE_INDEX('PUBLIC', 'ACCOUNT', 'NAME,DESCRIPTION')
2015-08-01 00:53:36 SEVERE: Database error executing CALL FTL_CREATE_INDEX('PUBLIC', 'ACCOUNT', 'NAME,DESCRIPTION')
java.lang.RuntimeException: Database error executing CALL FTL_CREATE_INDEX('PUBLIC', 'ACCOUNT', 'NAME,DESCRIPTION')
   at nxt.db.DbVersion.apply(DbVersion.java:83)
   at nxt.NxtDbVersion.update(NxtDbVersion.java:614)
   at nxt.db.DbVersion.init(DbVersion.java:55)
   at nxt.db.BasicDb.init(BasicDb.java:136)
   at nxt.Db.init(Db.java:39)
   at nxt.Nxt$Init.<clinit>(Nxt.java:324)
   at nxt.Nxt.init(Nxt.java:297)
   at nxt.Nxt.main(Nxt.java:284)
Caused by: org.h2.jdbc.JdbcSQLException: Unique index or primary key violation: "PRIMARY_KEY_9 ON FTL.INDEXES(SCHEMA, TABLE) VALUES ( /* key:2 */ 'PUBLIC', 'ACCOUNT', null)"; SQL statement:
INSERT INTO FTL.INDEXES(SCHEMA, TABLE, COLUMNS) VALUES(?, ?, ?) [23505-176]
   at org.h2.message.DbException.getJdbcSQLException(DbException.java:344)
   at org.h2.message.DbException.get(DbException.java:178)
   at org.h2.message.DbException.get(DbException.java:154)
   at org.h2.index.BaseIndex.getDuplicateKeyException(BaseIndex.java:103)
   at org.h2.index.PageBtree.find(PageBtree.java:121)
   at org.h2.index.PageBtreeLeaf.addRow(PageBtreeLeaf.java:151)
   at org.h2.index.PageBtreeLeaf.addRowTry(PageBtreeLeaf.java:104)
   at org.h2.index.PageBtreeIndex.addRow(PageBtreeIndex.java:97)
   at org.h2.index.PageBtreeIndex.add(PageBtreeIndex.java:88)
   at org.h2.index.MultiVersionIndex.add(MultiVersionIndex.java:59)
   at org.h2.table.RegularTable.addRow(RegularTable.java:120)
   at org.h2.command.dml.Insert.insertRows(Insert.java:157)
   at org.h2.command.dml.Insert.update(Insert.java:115)
   at org.h2.command.CommandContainer.update(CommandContainer.java:79)
   at org.h2.command.Command.executeUpdate(Command.java:254)
   at org.h2.jdbc.JdbcPreparedStatement.execute(JdbcPreparedStatement.java:199)
   at org.h2.fulltext.FullTextLucene.createIndex(FullTextLucene.java:139)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:497)
   at org.h2.engine.FunctionAlias$JavaMethod.getValue(FunctionAlias.java:481)
   at org.h2.expression.JavaFunction.getValue(JavaFunction.java:39)
   at org.h2.command.dml.Call.update(Call.java:48)
   at org.h2.command.CommandContainer.update(CommandContainer.java:79)
   at org.h2.command.Command.executeUpdate(Command.java:254)
   at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:132)
   at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:117)
   at nxt.db.FilteredStatement.executeUpdate(FilteredStatement.java:45)
   at nxt.db.TransactionalDb$DbStatement.executeUpdate(TransactionalDb.java:278)
   at nxt.db.DbVersion.apply(DbVersion.java:74)
   ... 7 more
2015-08-01 00:53:36 INFO: Shutting down...
2015-08-01 00:53:36 INFO: nxt.adminPassword not defined
2015-08-01 00:53:36 INFO: nxt.maxAPIRecords = "100"
2015-08-01 00:53:36 INFO: nxt.enableAPIUPnP = "false"



EDIT: after deleting the nxt_db folder and re-running I got this message as well:

Caused by: org.h2.jdbc.JdbcSQLException: Error creating or initializing trigger "FTL_ACCOUNT" object, class "org.h2.fulltext.FullTextLucene$FullTextTrigger", cause: "java.sql.SQLException: Column not found: NAME"; see root cause for details; SQL statement:
CREATE TRIGGER IF NOT EXISTS "PUBLIC"."FTL_ACCOUNT" AFTER INSERT, UPDATE, DELETE, ROLLBACK ON "PUBLIC"."ACCOUNT" FOR EACH ROW CALL "org.h2.fulltext.FullTextLucene$FullTextTrigger" [90043-176]


cheers
« Last Edit: July 31, 2015, 03:36:27 pm by TylerJordan »
Logged

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger

Are you using an existing nxt blockchain?
If you do it won't work since nxt-plus has a couple of changes made to the db schema making them incompatible.
Logged
HEAT: DEX | SDK | HOME

TylerJordan

  • Jr. Member
  • **
  • Karma: +5/-2
  • Offline Offline
  • Posts: 37
    • View Profile
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #36 on: August 01, 2015, 07:25:48 am »

Are you using an existing nxt blockchain?
If you do it won't work since nxt-plus has a couple of changes made to the db schema making them incompatible.

No, although after it failed the first time I did try it with NRS db ... that failed too.  I then deleted everything and cloned fresh and tried again ... and when that failed I started posting here.
Logged

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #37 on: August 01, 2015, 07:39:37 am »

Seeing it too now. Will upload a fix in a moment.
Thanks for alerting me!

Uploaded the fix https://github.com/fimkrypto/nxt-plus/commit/7fa71649d1ecb045abfacf0375b2d8d14415d7cd you should be able to clone and get it running now.
« Last Edit: August 01, 2015, 07:51:45 am by verymuchso »
Logged
HEAT: DEX | SDK | HOME

TylerJordan

  • Jr. Member
  • **
  • Karma: +5/-2
  • Offline Offline
  • Posts: 37
    • View Profile
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #38 on: August 01, 2015, 10:41:06 am »

Hooray - I confirm it's working for me! - thank you for your efforts   ;D
Logged

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #39 on: August 01, 2015, 10:49:57 am »

Hooray - I confirm it's working for me! - thank you for your efforts   ;D

Glad to hear, but honestly we require it to work for other purposes also.
So thanks for alerting me, if you run into anything else please let me know.
Logged
HEAT: DEX | SDK | HOME

_mr_e

  • Hero Member
  • *****
  • Karma: +88/-18
  • Offline Offline
  • Posts: 956
    • View Profile
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #40 on: August 01, 2015, 01:21:08 pm »

Any chance of you supporting jay qr codes for tx like jnxt.org so we don't need to enter a passphrase?

Sent from my SM-N9005 using Tapatalk

Logged

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #41 on: August 01, 2015, 01:38:25 pm »

Any chance of you supporting jay qr codes for tx like jnxt.org so we don't need to enter a passphrase?

Sent from my SM-N9005 using Tapatalk

Perhaps. The idea of having another external app that you put your trust in to have access to your secret phrase is a valid one.
This would make sense for the hosted version at https://www.mofowallet.com/launch.html#/start but only when using it on the desktop, on mobile it becomes unusable quickly.
We're looking for a solution that works on all platforms (mobile, web, desktop) and I don't see how to do that atm with the transaction bytes copy pasting.

I'm finalizing 0.4.5 of our client software, the online version has been up since yesterday.
This version has a built in encrypted wallet that works on mobile, desktop and the web version.
It's probably what we'll stick with for now. It's too bad jnxt does not use the standard hex encoded transaction format otherwise the decision would have been easier.

It's a little rough (UI wise) but the new wallet support is functional, it's accessible from here.. https://www.mofowallet.com/launch.html#/login-to

(should work fine on your SM-N9005  ;D)

http://fimkchat.com/2015/07/mofowallet-0-4-5-released/
Logged
HEAT: DEX | SDK | HOME

_mr_e

  • Hero Member
  • *****
  • Karma: +88/-18
  • Offline Offline
  • Posts: 956
    • View Profile
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #42 on: August 02, 2015, 03:14:23 pm »



Any chance of you supporting jay qr codes for tx like jnxt.org so we don't need to enter a passphrase?

Sent from my SM-N9005 using Tapatalk

This would make sense for the hosted version at https://www.mofowallet.com/launch.html#/start but only when using it on the desktop, on mobile it becomes unusable quickly.
We're looking for a solution that works on all platforms (mobile, web, desktop) and I don't see how to do that atm with the transaction bytes copy pasting.


On android you can raise intents and NxtVault can respond to requests for signing. Would be happy to work with you on improving this process. Currently there is no iOS version though.

I'll definitely give your mobile wallet a try later this evening:)

Logged

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #43 on: August 27, 2015, 09:26:53 pm »

http://fimkchat.com/2015/08/experimental-lompsa-0-4-7/

-----------------------

Finally I got around to implementing a protocol I've had in mind for a long time.
The idea is extremely simple but at the same time extremely powerful.

With the gossip protocol everyone running a FIMK server can send a message to one or more of his connected peers and be pretty sure that same message is distributed as fast as possible among all other peers.

Nothing is stored however!
All that remains on any of the servers is the ID of the message. And only for a limited amount of time just to make sure we don't keep sending the same message around.

To actually do something with gossip messages the receiving party should be actively listening for them.

A party does not need to listen for all gossip messages!

What you do is create a special key which is built up from a sender, recipient and or topic (or any combination of that) and you'll subscribe to that key through two-way websocket client/server connections.

Now when anyone sends a gossip that matches that key, as soon as that message reaches the (p2p) server your client is connected to you will be notified.

Having a free distributed messaging protocol could potentially come at a cost.
That's why all transactions and blocks on the network always go first.

It is a very early stage and these extra measures have not been enabled yet but this protocol comes with excellent spam prevention methods.
Since every gossip message has a sender and every peer in the network has knowledge of that sender's balance we could easily require a sender to have a minimum balance, we could also limit the number of messages per minute/hour/day etc per account ..

Every gossip message is signed with a secret phrase which proves who send the message (same mechanism as signing blocks).
Every gossip message is timestamped and the timestamp is included in the signature, messages older than - or from more than 15 seconds in the future are discarded.

The live chat feature is just one of it's uses and is what is available in lompsa (used to be mofowallet) 0.4.7 now.

Lompsa 0.4.7 shows how with this relatively simple protocol we can create a sophisticated client side (javascript) distributed real-time communications platform.

# client side protocol implementation
https://github.com/fimkrypto/mofowallet/blob/master/app/scripts/services/gossip-service.js

# messages are stored and served from indexeddb
https://github.com/fimkrypto/mofowallet/blob/master/app/scripts/providers/gossip-chat-messages-provider.js
https://github.com/fimkrypto/mofowallet/blob/master/app/scripts/providers/gossip-chat-list-provider.js

Lots of other uses exist. Free fast real-time communications between FIMK users is just one of them.
Eventually the protocol could be used for anything.. communications, games, live multi-sig, live trading etc..

---

The embedded NXT+ version does not have gossip protocol support enabled - only FIMK does atm.
Will add it to NXT+ when I have a chance.
Logged
HEAT: DEX | SDK | HOME

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #44 on: September 07, 2015, 02:00:56 pm »

Updated to NXT 1.5.15. Gossip protocol not yet enabled.
Logged
HEAT: DEX | SDK | HOME

Tosch110

  • Hero Member
  • *****
  • Karma: +211/-18
  • Offline Offline
  • Posts: 2365
    • View Profile
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #45 on: September 07, 2015, 03:05:09 pm »

Dang, did not see this thread until now! Will have a look at it and the code now :D I am excited, maybe I will add this to some of my projects :)

verymuchso

  • Hero Member
  • *****
  • Karma: +118/-2
  • Offline Offline
  • Posts: 549
    • View Profile
    • HEAT Ledger
Re: [ANN] NXT+ - Adds Realtime Websockets + Blogging framework to NXT core
« Reply #46 on: September 07, 2015, 03:26:14 pm »

excitement is good. keep us posted please.
Logged
HEAT: DEX | SDK | HOME
Pages: 1 2 3 [All]
 

elective-stereophonic
elective-stereophonic
assembly
assembly