Author Topic: Interested in a node-webkit implementation of GUI.  (Read 9379 times)

0 Members and 1 Guest are viewing this topic.

Offline Snail

  • Hero Member
  • *****
  • Posts: 750
    • View Profile
  • BitShares: snail

Offline zhangweis

  • Sr. Member
  • ****
  • Posts: 305
    • View Profile
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.
« Last Edit: April 29, 2014, 07:47:08 pm by zhangweis »
Weibo:http://weibo.com/zhangweis

Offline 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: http://bytemaster.bitshares.org
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.

Offline unimercio

  • Sr. Member
  • ****
  • Posts: 245
  • The opportunity of a lifetime comes by every 7 day
    • View Profile
    • Conscious Entrepreneurship Foundation (CEF)
  • BitShares: unimercio
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)

Offline HackFisher

  • Hero Member
  • *****
  • Posts: 883
    • View Profile

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
« Last Edit: April 27, 2014, 02:10:11 am by HackFisher »
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.

Offline zhangweis

  • Sr. Member
  • ****
  • Posts: 305
    • View Profile

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:http://weibo.com/zhangweis

Offline bytemaster


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: http://bytemaster.bitshares.org
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.

Offline HackFisher

  • Hero Member
  • *****
  • Posts: 883
    • View Profile
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.

Offline sudo

  • Hero Member
  • *****
  • Posts: 2255
    • View Profile
  • BitShares: ags
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

Offline valzav

  • Sr. Member
  • ****
  • Posts: 294
    • View Profile
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.

Offline bytemaster

For the latest updates checkout my blog: http://bytemaster.bitshares.org
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.

Offline zhangweis

  • Sr. Member
  • ****
  • Posts: 305
    • View Profile
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.
« Last Edit: April 24, 2014, 04:28:39 am by zhangweis »
Weibo:http://weibo.com/zhangweis

Offline sudo

  • Hero Member
  • *****
  • Posts: 2255
    • View Profile
  • BitShares: ags
 +5% +5% +5%
chrome app

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

Offline bytemaster

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: http://bytemaster.bitshares.org
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.

Offline zhangweis

  • Sr. Member
  • ****
  • Posts: 305
    • View Profile
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:http://weibo.com/zhangweis

Offline bytemaster

I am working on this. 


Sent from my iPhone using Tapatalk
For the latest updates checkout my blog: http://bytemaster.bitshares.org
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.

Offline zhangweis

  • Sr. Member
  • ****
  • Posts: 305
    • View Profile
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:http://weibo.com/zhangweis

Offline zhangweis

  • Sr. Member
  • ****
  • Posts: 305
    • View Profile
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}
« Last Edit: April 23, 2014, 08:21:39 pm by zhangweis »
Weibo:http://weibo.com/zhangweis

Offline alt

  • Hero Member
  • *****
  • Posts: 2821
    • View Profile
  • BitShares: baozi
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%

Offline crazybit

Bitshare X implements RPC interface


Offline zhangweis

  • Sr. Member
  • ****
  • Posts: 305
    • View Profile
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:http://weibo.com/zhangweis

Offline betax

  • Hero Member
  • *****
  • Posts: 808
    • View Profile
That is what I thought, you could have a desktop and a server version (own home / network server), so mobile / tablets can connect.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline zhangweis

  • Sr. Member
  • ****
  • Posts: 305
    • View Profile
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:http://weibo.com/zhangweis

Offline betax

  • Hero Member
  • *****
  • Posts: 808
    • View Profile
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 ?
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline zhangweis

  • Sr. Member
  • ****
  • Posts: 305
    • View Profile
Tested on android and it works well.
You can shrink the chrome browser window to see its mobile action.
Weibo:http://weibo.com/zhangweis

clout

  • Guest

Offline sudo

  • Hero Member
  • *****
  • Posts: 2255
    • View Profile
  • BitShares: ags
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%

Offline zhangweis

  • Sr. Member
  • ****
  • Posts: 305
    • View Profile
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
« Last Edit: April 19, 2014, 02:01:31 pm by zhangweis »
Weibo:http://weibo.com/zhangweis

Offline sudo

  • Hero Member
  • *****
  • Posts: 2255
    • View Profile
  • BitShares: ags
 +5% 

user experience optimization  is very important

Offline toast

  • Hero Member
  • *****
  • Posts: 4001
    • View Profile
  • BitShares: nikolai
+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.

Offline zhangweis

  • Sr. Member
  • ****
  • Posts: 305
    • View Profile
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.).
« Last Edit: April 18, 2014, 11:45:03 pm by zhangweis »
Weibo:http://weibo.com/zhangweis

Offline zhangweis

  • Sr. Member
  • ****
  • Posts: 305
    • View Profile
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.
« Last Edit: April 18, 2014, 10:41:02 am by zhangweis »
Weibo:http://weibo.com/zhangweis