elective-stereophonic
elective-stereophonic
Plugin feature to NXT client (Wesley's UI) Proposal Thread singapore
Please login or register.

Login with username, password and session length
Advanced search  

News:

Latest Nxt Client: Nxt 1.11.15

Pages: [1] 2 3 ... 5  All

Author Topic: Plugin feature to NXT client (Wesley's UI) Proposal Thread  (Read 12344 times)

supercell

  • Full Member
  • ***
  • Karma: +12/-4
  • Offline Offline
  • Posts: 103
  • Never Fork
    • View Profile
Plugin feature to NXT client (Wesley's UI) Proposal Thread
« on: June 13, 2014, 07:11:57 am »

Current Version: v0.3 (June 25th)


When new functionalities are introduced to NXT client there is a need to distribute the changes seperately by the developers of those functionalities. In many instances the changes are just a few to facilitate a certain use case and coordinate the flow of information between processes. This is a proposal on how to add a "plugin" functionalities to NXT client (Wesley's UI).

Features:
- Enabling, Disabling and Autostarting of plugins.
- Block chain based verification of the origin and appraisal from other developers.
- Seamless with the current UI.

Downloads and installation:
* for installing, You can just overwrite nxt folder with this one. It will modify some files and add some.

How to add plugins:

* for installing, You can just unzip the folder inside the "plugins" folder. Then add the folder name in JSON format in plugins.list (which is just a text file). Example for a populated plugins.list:
Quote from: plugins.list
[
      "QR",
      "helloworld",
      "SUPERCELL"
]
« Last Edit: June 25, 2014, 02:31:33 pm by supercell »
Logged
Supercell investments is an investment opportunity for Joe, Jean and by the Satoshi. Welcome to the future, we want to help you build it!

wesley

  • Ex-Staff Member
  • Hero Member
  • *****
  • Karma: +204/-3
  • Offline Offline
  • Posts: 1159
    • View Profile
Re: Plugin feature to NXT client (Wesley's UI) Proposal Thread
« Reply #1 on: June 13, 2014, 08:27:59 am »

I'm wondering if it wouldn't be better if plugins were loaded in an iframe (essentially the content area would be one big iframe). (With links in sidebar of course).

This keeps the code separate and rogue plugins at least will not be able to change the javascript of the core client (which is possible in your setup, by overriding methods, etc).

To communicate between the core client and plugin iframe can be done via HTML5 messages.

Let me know your thoughts.
Logged

nCtrl

  • Sr. Member
  • ****
  • Karma: +31/-0
  • Offline Offline
  • Posts: 254
    • View Profile
Re: Plugin feature to NXT client (Wesley's UI) Proposal Thread
« Reply #2 on: June 13, 2014, 08:30:46 am »

Just to be clear, whatever the implementation, by default there would be nothing right? It is up to the user to search, download, install these plugins right? There is no list of "preloaded" plugins, right?
Logged

supercell

  • Full Member
  • ***
  • Karma: +12/-4
  • Offline Offline
  • Posts: 103
  • Never Fork
    • View Profile
Re: Plugin feature to NXT client (Wesley's UI) Proposal Thread
« Reply #3 on: June 13, 2014, 09:21:39 am »

Just to be clear, whatever the implementation, by default there would be nothing right? It is up to the user to search, download, install these plugins right? There is no list of "preloaded" plugins, right?

Well I don't know if some plugins proven worthy to be added to the client but generally no the default is nada.
Logged
Supercell investments is an investment opportunity for Joe, Jean and by the Satoshi. Welcome to the future, we want to help you build it!

supercell

  • Full Member
  • ***
  • Karma: +12/-4
  • Offline Offline
  • Posts: 103
  • Never Fork
    • View Profile
Re: Plugin feature to NXT client (Wesley's UI) Proposal Thread
« Reply #4 on: June 13, 2014, 09:33:06 am »

I'm wondering if it wouldn't be better if plugins were loaded in an iframe (essentially the content area would be one big iframe). (With links in sidebar of course).

This keeps the code separate and rogue plugins at least will not be able to change the javascript of the core client (which is possible in your setup, by overriding methods, etc).

To communicate between the core client and plugin iframe can be done via HTML5 messages.

Let me know your thoughts.

Now how is this seamless? Think big. For example with this someone can write a plugin to include an interactive graph of price fluctuation for assets that would show on each asset's page in a natural way. Another that would show a pop up if a certain chosen type of transactions reached a specific number of confirmations! For example James is working on NXTServices, Even though it is in a completely different programming language with its own daemon. Still it can be used seamlessly with this UI! Multiple accounts in one wallet O_o! the list just goes on.

You missed the main primarily goal of all this, to seperate the plugin and the client just enough so distribution-wise there is no need to distribute a whole modified different version of the client and to make evaluating and analyzing the plugin code easier for the community to ensure it is clear of malicious code.

For now the implementation of nrs.plugins.js (will post it later) is blindly just adding all javascript files but in the future a more sophisticated version can analyze the JS to ensure it does not override functions (if you ask me overriding them can be useful for a plugin sometimes).

Wait for SignBook Droid as well, It will change your mind
Logged
Supercell investments is an investment opportunity for Joe, Jean and by the Satoshi. Welcome to the future, we want to help you build it!

wesley

  • Ex-Staff Member
  • Hero Member
  • *****
  • Karma: +204/-3
  • Offline Offline
  • Posts: 1159
    • View Profile
Re: Plugin feature to NXT client (Wesley's UI) Proposal Thread
« Reply #5 on: June 13, 2014, 09:58:18 am »

That would all be great, but security must go first, right?
Logged

supercell

  • Full Member
  • ***
  • Karma: +12/-4
  • Offline Offline
  • Posts: 103
  • Never Fork
    • View Profile
Re: Plugin feature to NXT client (Wesley's UI) Proposal Thread
« Reply #6 on: June 13, 2014, 10:27:47 am »

That would all be great, but security must go first, right?

There is no way around the need of review and approval for now. I am researching inboxing javascript but still it is a very hard thing to be done.
 
I agree you don't want crossdomain JSON AJAX passing the session passphrase :D
Logged
Supercell investments is an investment opportunity for Joe, Jean and by the Satoshi. Welcome to the future, we want to help you build it!

chanc3r

  • Hero Member
  • *****
  • Karma: +124/-50
  • Offline Offline
  • Posts: 1019
  • NXTInspect
    • View Profile
Re: Plugin feature to NXT client (Wesley's UI) Proposal Thread
« Reply #7 on: June 15, 2014, 10:30:23 pm »

With Supercell and TEAM developing significant add-ons for NXT - it would be a huge win to provide a simple standard plug-in method now otherwise both will be issuing modified versions of the client which is not good.
Logged
NXT: 29996814460165 (NXT-JTA7-B2QR-8BFC-2V222)
@imrimr @NXTinspect

supercell

  • Full Member
  • ***
  • Karma: +12/-4
  • Offline Offline
  • Posts: 103
  • Never Fork
    • View Profile
Re: Plugin feature to NXT client (Wesley's UI) Proposal Thread
« Reply #8 on: June 16, 2014, 01:40:48 am »

With Supercell and TEAM developing significant add-ons for NXT - it would be a huge win to provide a simple standard plug-in method now otherwise both will be issuing modified versions of the client which is not good.

Cleaning up and making sample plugins, helloworld and Qrcode. Unloading plugin scripts is the last thing I am working on before submitting something pretty here. Very soon, awesome times.
Logged
Supercell investments is an investment opportunity for Joe, Jean and by the Satoshi. Welcome to the future, we want to help you build it!

rudeboi

  • Hero Member
  • *****
  • Karma: +55/-4
  • Offline Offline
  • Posts: 633
  • Nxt Organization Member
    • View Profile
Re: Plugin feature to NXT client (Wesley's UI) Proposal Thread
« Reply #9 on: June 20, 2014, 07:49:39 am »

Really love the idea of add-ons, would definitely help with ease of use, and maintain the fact that Nxt has the best gui which is one of our unique selling points.

Would be great if developers could place additions throughout the gui, as is seamless, but have to say that does sound a like a security risk, due to changing the original code as you wouldn't want someone to delete the original AE and putting their dodgy version in there.

Sand boxing sounds like a good idea, but there is nothing stopping us being limited to just separate new pages, we could have multiple sand boxes placed around the gui so that for example graphs could be added on to assets, you could have a more custom dashboard showing Nxt price in dollars for example. When plugins aren't enabled these sand boxes would show default content or nothing, or even turned off within the options.
Logged
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬  ▄▀▀▀▀▀▀▀▀▄  ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬●  nimirum  ●▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
▬▬▬ ◖ENDING CENSORSHIP ONLINE◗  ◖ ICO OPEN NOW◗ ▬▬▬

chanc3r

  • Hero Member
  • *****
  • Karma: +124/-50
  • Offline Offline
  • Posts: 1019
  • NXTInspect
    • View Profile
Re: Plugin feature to NXT client (Wesley's UI) Proposal Thread
« Reply #10 on: June 20, 2014, 07:57:07 am »

We can already check the block chain for 'signatures'
Maybe when a plugin is loaded the client checked for a hash on the block chain
This would be our equivalent of loading a signed plug in - this would check against tampering with the plug in and unknown plug ins.
This could then warn the user...

Security is an issue but tbh someone could download an installer now and it could just replace code in the default client with its own and/or overwrite it with a damaged copy.

Security starts with the user....
Logged
NXT: 29996814460165 (NXT-JTA7-B2QR-8BFC-2V222)
@imrimr @NXTinspect

supercell

  • Full Member
  • ***
  • Karma: +12/-4
  • Offline Offline
  • Posts: 103
  • Never Fork
    • View Profile
Re: Plugin feature to NXT client (Wesley's UI) Proposal Thread
« Reply #11 on: June 20, 2014, 08:51:56 pm »

Really love the idea of add-ons, would definitely help with ease of use, and maintain the fact that Nxt has the best gui which is one of our unique selling points.

Would be great if developers could place additions throughout the gui, as is seamless, but have to say that does sound a like a security risk, due to changing the original code as you wouldn't want someone to delete the original AE and putting their dodgy version in there.

Sand boxing sounds like a good idea, but there is nothing stopping us being limited to just separate new pages, we could have multiple sand boxes placed around the gui so that for example graphs could be added on to assets, you could have a more custom dashboard showing Nxt price in dollars for example. When plugins aren't enabled these sand boxes would show default content or nothing, or even turned off within the options.

I will work on sandboxing javascript using object instances and pre-analysis of the script prior to loading. But generally I would recommend relative security by verification of code and recommending. a "web of trust" kind of thing if you may. Further more with external signing plugin that we are developing currently, You might change your mind about the security aspect at all. We already posted a QR code plugin, Basically now you need to show an unsigned tx in qr and work on a way to deliver a qr with the signed version (SignBook Droid). After that your online client would be still safe with plenty of plugins roaming around.
Logged
Supercell investments is an investment opportunity for Joe, Jean and by the Satoshi. Welcome to the future, we want to help you build it!

supercell

  • Full Member
  • ***
  • Karma: +12/-4
  • Offline Offline
  • Posts: 103
  • Never Fork
    • View Profile
Re: Plugin feature to NXT client (Wesley's UI) Proposal Thread
« Reply #12 on: June 20, 2014, 08:54:15 pm »

We can already check the block chain for 'signatures'
Maybe when a plugin is loaded the client checked for a hash on the block chain
This would be our equivalent of loading a signed plug in - this would check against tampering with the plug in and unknown plug ins.
This could then warn the user...

Security is an issue but tbh someone could download an installer now and it could just replace code in the default client with its own and/or overwrite it with a damaged copy.

Security starts with the user....

That is a wonderful idea but if you consider rapid development and versioning, wouldn't this forums suffice if the developers are posting hashsums and signed stuff? Maybe for the big plugins that would be a daily usage kind of plugins, You know stable ones, then yeah that is an excellent idea.
Logged
Supercell investments is an investment opportunity for Joe, Jean and by the Satoshi. Welcome to the future, we want to help you build it!

supercell

  • Full Member
  • ***
  • Karma: +12/-4
  • Offline Offline
  • Posts: 103
  • Never Fork
    • View Profile
Re: Plugin feature to NXT client (Wesley's UI) Proposal Thread
« Reply #13 on: June 22, 2014, 01:19:05 pm »

On the works btw, Charts and graphs, QR Scanner, will submit them soonish (12 hours to a couple of days.)
Logged
Supercell investments is an investment opportunity for Joe, Jean and by the Satoshi. Welcome to the future, we want to help you build it!

supercell

  • Full Member
  • ***
  • Karma: +12/-4
  • Offline Offline
  • Posts: 103
  • Never Fork
    • View Profile
Re: Plugin feature to NXT client (Wesley's UI) Proposal Thread
« Reply #14 on: June 22, 2014, 06:33:41 pm »

It seems that this idea and implementation is of no interest of most, at least not the expected fuss and discussion. Let me post another screenshot to show what is in the works.




BTW, This is not a UI mockup. Most of them are already working distributable plugins!
Logged
Supercell investments is an investment opportunity for Joe, Jean and by the Satoshi. Welcome to the future, we want to help you build it!

supercell

  • Full Member
  • ***
  • Karma: +12/-4
  • Offline Offline
  • Posts: 103
  • Never Fork
    • View Profile
Re: Plugin feature to NXT client (Wesley's UI) Proposal Thread
« Reply #15 on: June 22, 2014, 06:36:58 pm »

Block chain based verification of plugin origin and integrity is in the works.  ;).

Someone, just tell me what else to make to get your interest  :-\
Logged
Supercell investments is an investment opportunity for Joe, Jean and by the Satoshi. Welcome to the future, we want to help you build it!

bitcoinpaul

  • Hero Member
  • *****
  • Karma: +590/-589
  • Offline Offline
  • Posts: 3097
  • Karmageddon
    • View Profile
Re: Plugin feature to NXT client (Wesley's UI) Proposal Thread
« Reply #16 on: June 22, 2014, 06:54:13 pm »

I think this topic is very interesting. But I don't have the technical background to evaluate the security behind this.
Logged
Like my Avatar? Reply now! NXT-M5JR-2L5Z-CFBP-8X7P3

joefox

  • Hero Member
  • *****
  • Karma: +62/-1
  • Offline Offline
  • Posts: 522
    • View Profile
    • The Nxt Wiki
Re: Plugin feature to NXT client (Wesley's UI) Proposal Thread
« Reply #17 on: June 22, 2014, 07:46:59 pm »

Someone, just tell me what else to make to get your interest  :-\

Make me able to try these plugins on the testnet.  Or Supercell, even.
Logged
GPG Key Id: 0x94A521DA613CAE76 | BitMessage BM-NBzUURL9jLagPALxCpxYDaMVe9E3965u
Nxt Wiki: http://wiki.nxtcrypto.org/
Tips: NXT-DBDW-STA8-ARBE-6JRPA

cc001

  • Hero Member
  • *****
  • Karma: +68/-4
  • Offline Offline
  • Posts: 829
    • View Profile
Re: Plugin feature to NXT client (Wesley's UI) Proposal Thread
« Reply #18 on: June 22, 2014, 08:00:27 pm »

I think this is a very good idea! it could evolve in the future to some kind of plugin-store, similar to what is done for chrome. We need to find a way that malicious plugins/code can not harm anything though, which could be very difficult.
Logged
cc001 Personal - NXT-8RXS-2SSK-RNF2-HSNL8
NxtReporting.com - The Nxt Asset Exchange Portfolio Manager with Profitability Tracking - Donations are greatly appreciated on NXT-5W4G-GAR6-JHJP-H8ZTW

joefox

  • Hero Member
  • *****
  • Karma: +62/-1
  • Offline Offline
  • Posts: 522
    • View Profile
    • The Nxt Wiki
Re: Plugin feature to NXT client (Wesley's UI) Proposal Thread
« Reply #19 on: June 22, 2014, 08:26:26 pm »

I just tried to install the UI add-ins in the OP.  The HTML files have completely borked my wallet interface (it looks like it's broken all the CSS):




Logged
GPG Key Id: 0x94A521DA613CAE76 | BitMessage BM-NBzUURL9jLagPALxCpxYDaMVe9E3965u
Nxt Wiki: http://wiki.nxtcrypto.org/
Tips: NXT-DBDW-STA8-ARBE-6JRPA
Pages: [1] 2 3 ... 5  All
 

elective-stereophonic
elective-stereophonic
assembly
assembly