Interested in a node-webkit implementation of GUI.

Started by zhangweis, April 18, 2014, 10:22:56 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.


zhangweis

#31
Quote from: bytemaster on April 29, 2014, 12:44:34 PM
We have changed the API of sendtoaddress to make it compatible with Bitcoin RPC....   We are attempting to be as compatible with Bitcoin as possible and to have extended APIs for handling our special features (like support for multiple asset types on one chain).

I agree that the RPC API should be compatible with bitcoin's. As I understand sendtoaddress will be without asset type where asset type defaults to BTS and an extended API like sendtoaddress_asset will be added. I can also see get_transaction_history and will play with that. Good progress, thanks.

Edit: Seems like there's some uncommited changes in fc at the time of writing and I've manually fixed that by adding needed changes (in time.hpp) on my local machine.
Weibo:[url="http://weibo.com/zhangweis"]http://weibo.com/zhangweis[/url]

bytemaster

We have changed the API of sendtoaddress to make it compatible with Bitcoin RPC....   We are attempting to be as compatible with Bitcoin as possible and to have extended APIs for handling our special features (like support for multiple asset types on one chain).
For the latest updates checkout my blog: [url="http://bytemaster.bitshares.org"]http://bytemaster.bitshares.org[/url]
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

unimercio

Quote from: zhangweis on April 23, 2014, 08:17:13 PM
Pulled lastest bitshares code finally build it on my debian box.
Excited to see that the latest bts_xt_client supports --server and uses ./htdocs as http root. This makes it easier to put my code just at ./htdocs. Will play with that if I find some time.
RPC tricks:
You need to go through the below steps to send xts:
1. openwallet()
2. walletpassphrase('<<send password>>')
3. sendtoaddress('address', {"amount":<number>,"unit":0},'comment')

From RPC commands, I don't find how to retrieve latest transactions but I can try to simulate it by directly using getblock and get_transaction.
My config.json:
{"rpc":{"rpc_user":"user","rpc_password":"pwd","rpc_endpoint":"0.0.0.0:0","httpd_endpoint":"0.0.0.0:9091","htdocs":"./htdocs"},"ignore_console":false}
+5% thanks
Conscious Entrepreneurship Foundation (CEF)

HackFisher

#28
Quote from: zhangweis on April 26, 2014, 09:11:06 PM
Quote from: bytemaster on April 26, 2014, 01:19:54 PM

Quote from: HackFisher on April 26, 2014, 01:06:20 PM
For mobile device, or those env not suitable to run a local light client node, solutions like blockchain.info would be nice.
One js API to abstract both use cases.


Sent from my iPhone using Tapatalk

I guess the new API with username in openwallet is for this purpose. As this doesn't add too much complexicity to C code, I think it's fine.
But from security point of view, the unlocking of private key still happens on server. The fact that unlocking happens in browser makes me believe that I'm safe with blockchain.info wallet. I may choose another solution If I'm going to setup some online wallet services like blockchain.info. As I understand, the online wallet like blockchain.info only need to provide 2 things:
1. Storage of encrypted private keys.
2. Publishing signed transactions. This can be public interface and doesn't have to be done from one's wallet (means no login).

Agree, I think blockchain.info is just a lightweight client node inside browser, which only delegate wallet storage and chain broadcast part to server.

来自我的 GT-N7100 上的 Tapatalk
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

zhangweis

Quote from: bytemaster on April 26, 2014, 01:19:54 PM

Quote from: HackFisher on April 26, 2014, 01:06:20 PM
For mobile device, or those env not suitable to run a local light client node, solutions like blockchain.info would be nice.
One js API to abstract both use cases.


Sent from my iPhone using Tapatalk

I guess the new API with username in openwallet is for this purpose. As this doesn't add too much complexicity to C code, I think it's fine.
But from security point of view, the unlocking of private key still happens on server. The fact that unlocking happens in browser makes me believe that I'm safe with blockchain.info wallet. I may choose another solution If I'm going to setup some online wallet services like blockchain.info. As I understand, the online wallet like blockchain.info only need to provide 2 things:
1. Storage of encrypted private keys.
2. Publishing signed transactions. This can be public interface and doesn't have to be done from one's wallet (means no login).
Weibo:[url="http://weibo.com/zhangweis"]http://weibo.com/zhangweis[/url]

bytemaster


Quote from: HackFisher on April 26, 2014, 01:06:20 PM
For mobile device, or those env not suitable to run a local light client node, solutions like blockchain.info would be nice.
One js API to abstract both use cases.


Sent from my iPhone using Tapatalk
For the latest updates checkout my blog: [url="http://bytemaster.bitshares.org"]http://bytemaster.bitshares.org[/url]
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

HackFisher

For mobile device, or those env not suitable to run a local light client node, solutions like blockchain.info would be nice.
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

sudo

Quote from: valzav on April 24, 2014, 03:43:35 PM
Quote from: zhangweis on April 23, 2014, 10:42:52 PM
That's great. I'll stop here and please don't hesitate if anything I can help.
btw, I think an integrated window could be more user friendly. I mean let the user feel like a real desktop app than populating it in a browser. Maybe cef(https://code.google.com/p/chromiumembedded/) can help here.
Another alternative to build a desktop-like application is Qt WebKit http://qt-project.org/doc/qt-5/qtwebkitwidgets-index.html, with the Qt WebKit Bridge it's even possible to combine HTML5 based GUI with bts_xt_client in a single process.

+5% cool

valzav

Quote from: zhangweis on April 23, 2014, 10:42:52 PM
That's great. I'll stop here and please don't hesitate if anything I can help.
btw, I think an integrated window could be more user friendly. I mean let the user feel like a real desktop app than populating it in a browser. Maybe cef(https://code.google.com/p/chromiumembedded/) can help here.
Another alternative to build a desktop-like application is Qt WebKit http://qt-project.org/doc/qt-5/qtwebkitwidgets-index.html, with the Qt WebKit Bridge it's even possible to combine HTML5 based GUI with bts_xt_client in a single process.

bytemaster

For the latest updates checkout my blog: [url="http://bytemaster.bitshares.org"]http://bytemaster.bitshares.org[/url]
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

zhangweis

#21
Well, I misunderstood you and am very glad that if I can help.
Added receiving address list page.
There seems to be some bugs in sending transactions as it will clear the balance to 0 in some cases. But for testing ui, it's ok.
Plan to merge received transactions and send transactions to single transactions list with different colors for sent and received transactions.
Weibo:[url="http://weibo.com/zhangweis"]http://weibo.com/zhangweis[/url]

sudo

 +5% +5% +5%
chrome app

js html5 something like that is the future
Mobile Internet&light client   is more attractive

bytemaster

Quote from: zhangweis on April 23, 2014, 10:42:52 PM
Quote from: bytemaster on April 23, 2014, 09:20:16 PM
I am working on this. 


Sent from my iPhone using Tapatalk

That's great. I'll stop here and please don't hesitate if anything I can help.
btw, I think an integrated window could be more user friendly. I mean let the user feel like a real desktop app than populating it in a browser. Maybe cef(https://code.google.com/p/chromiumembedded/) can help here.

I agree... when I said I was working on it, it means I am working on the RPC calls and documentation... I will want some help with what you are doing here soon.
For the latest updates checkout my blog: [url="http://bytemaster.bitshares.org"]http://bytemaster.bitshares.org[/url]
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

zhangweis

Quote from: bytemaster on April 23, 2014, 09:20:16 PM
I am working on this. 


Sent from my iPhone using Tapatalk

That's great. I'll stop here and please don't hesitate if anything I can help.
btw, I think an integrated window could be more user friendly. I mean let the user feel like a real desktop app than populating it in a browser. Maybe cef(https://code.google.com/p/chromiumembedded/) can help here.
Weibo:[url="http://weibo.com/zhangweis"]http://weibo.com/zhangweis[/url]

bytemaster

For the latest updates checkout my blog: [url="http://bytemaster.bitshares.org"]http://bytemaster.bitshares.org[/url]
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

zhangweis

First JSON/RPC call on getbalance done.
You can see it working from http://114.215.104.153:9091/index.html#/transactions where user/password should be "user" and "pwd".

Notice the balance is "1000" at the moment which is got from calling json/rpc getbalance.
Weibo:[url="http://weibo.com/zhangweis"]http://weibo.com/zhangweis[/url]

zhangweis

#15
Pulled lastest bitshares code finally build it on my debian box.
Excited to see that the latest bts_xt_client supports --server and uses ./htdocs as http root. This makes it easier to put my code just at ./htdocs. Will play with that if I find some time.
RPC tricks:
You need to go through the below steps to send xts:
1. openwallet()
2. walletpassphrase('<<send password>>')
3. sendtoaddress('address', {"amount":<number>,"unit":0},'comment')

From RPC commands, I don't find how to retrieve latest transactions but I can try to simulate it by directly using getblock and get_transaction.
My config.json:
{"rpc":{"rpc_user":"user","rpc_password":"pwd","rpc_endpoint":"0.0.0.0:0","httpd_endpoint":"0.0.0.0:9091","htdocs":"./htdocs"},"ignore_console":false}
Weibo:[url="http://weibo.com/zhangweis"]http://weibo.com/zhangweis[/url]

alt

Quote from: zhangweis on April 18, 2014, 10:22:56 AM
As the GUI is delayed, I'm interested in a GUI made in pure js.
The benefit:
1. quick
The html+css+js makes it very easy and quick to write GUI. I think I can make a very simple prototype in a week if I can have some spare time as long as JSON-RPC interface is ready.
2. cross platform
Even on mobile platform like ios and android.
3. responsive page design
This makes it look and feel well on different devices.
4. easy
JS is easier than C in my opinion.
Great!  +5% +5% +5%

crazybit


zhangweis

Quote from: betax on April 22, 2014, 10:21:55 AM
That is what I thought, you could have a desktop and a server version (own home / network server), so mobile / tablets can connect.
Yes, exactly. I don't know if they provide RPC on HTTP. If they don't, things will be a bit difficult as I have to use node/phonegap to setup tcp connections. I'm still trying to find some documents on their RPC interfaces.
Weibo:[url="http://weibo.com/zhangweis"]http://weibo.com/zhangweis[/url]

betax

That is what I thought, you could have a desktop and a server version (own home / network server), so mobile / tablets can connect.
[url="https://metaexchange.info"]https://metaexchange.info[/url] | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

zhangweis

Quote from: betax on April 21, 2014, 07:56:54 AM
Great idea, what is your plan? Create a desktop application using node webkit that interacts with a local / own network rpc server? Or a centralize solution ?

node webkit that interacts with a local / own network rpc server. For an online wallet, I think we may have legal issues with running such a service.
Weibo:[url="http://weibo.com/zhangweis"]http://weibo.com/zhangweis[/url]

betax

Great idea, what is your plan? Create a desktop application using node webkit that interacts with a local / own network rpc server? Or a centralize solution ?
[url="https://metaexchange.info"]https://metaexchange.info[/url] | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

zhangweis

Tested on android and it works well.
You can shrink the chrome browser window to see its mobile action.
Weibo:[url="http://weibo.com/zhangweis"]http://weibo.com/zhangweis[/url]


sudo

Quote from: zhangweis on April 19, 2014, 01:31:58 PM
Initial prototype (http://114.215.104.153:8081/main.html), repository:(https://github.com/zhangweis/bts-ui/):

  • Tested only on chrome but could possibly work on ios and android.
  • Angularjs based.
  • Responsive design (layout from coinpunk)
  • Page switch between transactions and send.
  • Really not good at page design and need some help.

To do:
node+webkit packaging (should not be hard, but automation could be)
make data layer and simulate JSON/RPC

+5% +5%

zhangweis

#5
Initial prototype (http://114.215.104.153:8081/main.html), repository:(https://github.com/zhangweis/bts-ui/):

  • Tested only on chrome but could possibly work on ios and android.
  • Angularjs based.
  • Responsive design (layout from coinpunk)
  • Page switch between transactions and send.
  • Really not good at page design and need some help.

To do:
node+webkit packaging (should not be hard, but automation could be)
make data layer and simulate JSON/RPC
Weibo:[url="http://weibo.com/zhangweis"]http://weibo.com/zhangweis[/url]

sudo

 +5% 

user experience optimization  is very important

toast

+1 I have been advocating for this. Define that rpc api for us dan!

Sent from my SCH-I535 using Tapatalk

Do not use this post as information for making any important decisions. The only agreements I ever make are informal and non-binding. Take the same precautions as when dealing with a compromised account, scammer, sockpuppet, etc.

zhangweis

#2
We can even setup a blockchain-like online wallet service using coinpunk code. But I don't know whether running a service like this is legal or not (considering lotto.).
Weibo:[url="http://weibo.com/zhangweis"]http://weibo.com/zhangweis[/url]

zhangweis

#1
As the GUI is delayed, I'm interested in a GUI made in pure js.
The benefit:
1. quick
The html+css+js makes it very easy and quick to write GUI. I think I can make a very simple prototype in a week if I can have some spare time as long as JSON-RPC interface is ready.
2. cross platform
Even on mobile platform like ios and android.
3. responsive page design
This makes it look and feel well on different devices.
4. easy
JS is easier than C in my opinion.
Weibo:[url="http://weibo.com/zhangweis"]http://weibo.com/zhangweis[/url]