17Q4MX2hmktmpuUKHFuoRmS5MfB5XPbhod / dropzone-lib

An Anonymous Peer-To-Peer Local Contraband Marketplace
MIT License
32 stars 12 forks source link

Let's discuss plans for the javascript library here? #1

Closed 17Q4MX2hmktmpuUKHFuoRmS5MfB5XPbhod closed 9 years ago

17Q4MX2hmktmpuUKHFuoRmS5MfB5XPbhod commented 9 years ago

Ideally, I'd like to see a single page Angular-based GUI that could be hosted on github.io, or on your local computer. I'd like to see that this client support publicly viewable URLS such as : http://dropzone.github.io/#items/transaction-id-here , and which would display content without the need to login immediately. Once a user logged-in (by tying their private key) they could then access features such as communications and purchasing and such.

@krisives - Do you have the skills to implement something like this? Would you like to sketch up some interfaces while @aynik and I work through the libraries?

@aynik - I just started on the encoding and decoding libraries, but can work through most anything. Tell me what you want to work on, and I'll work around you on whatever you're not as interested in. Note that I still have some work to do on the dropzone_ruby cli before I join you in this node-dropzone with my full attention.

krisives commented 9 years ago

@krisives - Do you have the skills to implement something like this? Would you like to sketch up some interfaces while @aynik and I work through the libraries?

I will probably implement something and then simply show you guys what I've implemented. It's easier and more useful for me to mock up the UI in HTML.

Ideally, I'd like to see a single page Angular-based GUI that could be hosted on github.io

The only concern I have is that I will run into CORS problems because the domains can't talk to each other. Running it this way would also stop any pathways to using a SPV or other blockchain interactions instead of relying on the (centralized) Blockr.io API.

I wasn't going to use Angular.js, because I didn't think about it, but good idea. There is a lot of value gained there since a lot of people are familiar with it.

or on your local computer

My plan was to use nw.js to overcome any limitations to local file access, CORS, and also because currently the program being a CLI I have to talk to that process somehow, and that's not going to happen in the browser.

Once the JS library is completed, we wouldn't have to talk to the child process. Assuming @aynik doesn't use an node libraries that can't be passed through browserify we would be able to provide a version that is hosted on github.io that should work as long as blockr.io is allowing cross-origin requests.

ghost commented 9 years ago

Ideally, I'd like to see a single page Angular-based GUI that could be hosted on github.io

May I recommend React instead? (if thats fine for you, @krisives) Angular is quite verbose and could get slow if the app is not perfectly well architected. Maybe not the JSX stuff which I find quite weird, but just the views as the rendering technology behind React is very acclaimed.

The only concern I have is that I will run into CORS problems because the domains can't talk to each other.

CORS is not an issue, just adds some bureaucracy in the form of new headers and permissions (Access-Control-*). You need a gateway anyway or you'll have to use WebRTC and perhaps webcoin to run SPV in the browser. I prefer to go with a gateway first and then think about the other later.

My plan was to use nw.js

I like the idea of a standalone app before publishing online, but maybe we can have both at the same time anyway.

Assuming @aynik doesn't use an node libraries that can't be passed through browserify

Well, I think SPV will definitely not get "browserified" correctly so I guess we would have to wait for having a full browser-side package. In the meanwhile we can have the standalone nw.js app using system calls and maybe an online demo connecting to a gateway server.

@17Q4MX2hmktmpuUKHFuoRmS5MfB5XPbhod I'm building the SPV node right now, so you can work on any part of the protocol. I cannot find a suitable node.js counterparty module around and I was thinking I'll have to build the parts I need myself, any idea? I'd like to work on the stuff in this order: SPV, counterparty support, and then protocol feature + test, until we reach parity with dropzone_ruby, then think about next steps.

krisives commented 9 years ago

CORS is not an issue, just adds some bureaucracy in the form of new headers and permissions (Access-Control-*).

That's not something we control on the client side. If at anytime the Blockr.io server stop allowing cross-origin we can't do anything about it.

You need a gateway anyway or you'll have to use WebRTC and perhaps webcoin to run SPV in the browser. I prefer to go with a gateway first and then think about the other later.

Until the browser is capable I think the only sane option is to use nw.js. If a watered down version that only works with blockr.io can be produced easily it will happen. Likewise if anyone wants to run a Bitcoin node and talk over RPC that could work too. I don't see most of that code existing in the GUI, but instead being implemented in either the CLI or the nodejs module, whichever is being used.

ghost commented 9 years ago

That's not something we control on the client side. If at anytime the Blockr.io server stop allowing CORS we can't do anything about it.

Sure, I didn't mean to use Blockr.io, but our own service (the gateway I was referring to).

For the rest I agree, I didn't have in mind a full client-side app even when it may be possible using WebRTC, let's stick to simple and quick development cycles so we can reap the benefits faster.

krisives commented 9 years ago

I don't like Angular a whole lot, but I have to say JSX from React seems terrible.

17Q4MX2hmktmpuUKHFuoRmS5MfB5XPbhod commented 9 years ago

Regarding CORS, I believe that many sites are allowing most of the queries we need. Blockchain.info is one such site. See their notice on CORS here: https://blockchain.info/hu/api/blockchain_api .

I'm open to either React or Angular. It would appear that @aynik has worked with both, so I'd be deferential to his opinion on the matter. @krisives - if you could start a mockup, let's see what you come up with and make a decision on this later?

@aynik - should we start a new repo for the frontend? What should we call it - merely "dropzone"? "dropzone-frontend"? I'd prefer to not rely on a server side component any more than we have to. I would like to try to deploy the gui in such a way as to not require a server side component, as this will provide the least friction to ordinary users. I would like to think that a dropzone.info arises which uses either the ruby or javascript libraries to create an google-indexable website, but until then, it would be nice to have easy drop-zone url's that can be accessed by users from forums/reddit/etc. It may even be preferential to convert this gui into a chrome and/or firefox extension down the line...

krisives commented 9 years ago

Regarding CORS, I believe that many sites are allowing most of the queries we need. Blockchain.info is one such site. See their notice on CORS here: https://blockchain.info/hu/api/blockchain_api .

That's fine for the browser version. Either way I'm sure someone will add full-node Bitcoin RPC support to dropzone and I know work is being done on the SPV code. There will be lots of choices I'm sure.

ghost commented 9 years ago

I'm open to either React or Angular. It would appear that @aynik has worked with both, so I'd be deferential to his opinion on the matter.

@krisives I really don't care too much what you choose if the code is kept compact and explicit

@17Q4MX2hmktmpuUKHFuoRmS5MfB5XPbhod Yes, a new repository for the frontend will be the best, I usually call these as the domains where they're served, that is very explicit and helps searching on github.

I would like to try to deploy the gui in such a way as to not require a server side component, as this will provide the least friction to ordinary users.

I've been checking recently and we can definitely do this with bitcore-p2p and WebRTC, I still have to try browserifying it but that's exactly what Webcoin is doing so it works.

I like the domain dropzone.info too.

krisives commented 9 years ago

+1 for no server

+1 for dropzone domain (whichever TLD)

17Q4MX2hmktmpuUKHFuoRmS5MfB5XPbhod commented 9 years ago

Unfortunately dropzone.info is taken, though I agree that it is the right name for this application. Does someone want to contact the squatter to see how much they want for this domain?

ghost commented 9 years ago

I've contacted him, let's see what he says about. I see that "dropzone.market" is available, I'm not that sure about novelty domains though...

17Q4MX2hmktmpuUKHFuoRmS5MfB5XPbhod commented 9 years ago

If we go with another tld, I would likely suggest .io over .market as it seems to be quasi-standard for this space right now.

ghost commented 9 years ago

Yes, I like .io as well, but unfortunatelly:

Owner  : Sarah Cassady
Owner  : Sarah Cassady
Owner  : PMB #358, 14032 - 23 Avenue NW
Owner  : Edmonton
Owner  : AB
Owner  : CA

No contact email, expires on january 2016.

krisives commented 9 years ago

I shot her a twitter message maybe it will help:

https://twitter.com/sarahcassady

ghost commented 9 years ago

@krisives that was fast :D

krisives commented 9 years ago

Strange because today I spent most of the day outside beating up metal, then came in and saw this :)

krisives commented 9 years ago

Sarah got back to me on Twitter:

I love and support open source too but its registered for one of my clients, so no can do.

So 'dropzone.io' won't be an option unless they allow DNS to expire in a few months. Any other ideas?

ghost commented 9 years ago

What about:

dr.opzone.info
dr.opzone.io
krisives commented 9 years ago

dropzo.ne is available but expensive

dropzone.cr is available and not very expensive, and is currently where some popular torrent sites are running to.

ghost commented 9 years ago

Good catch, also:

dropzone.cc
dropzone.li
dropzone.sh
dropzo.net <- !! 11$ :D
krisives commented 9 years ago

Namecheap allows us to buy some of those with Bitcoin.

ghost commented 9 years ago

what about a renaming brainstorming? :D

krisives commented 9 years ago

Oh I'm not saying do it now, it's just that some domains I don't know how one would purchase with Bitcoin.

eragmus commented 9 years ago

There's a certain appeal to names like "dropzo.ne" and "dropzo.net", but maybe it's not so user friendly (easy to remember)? Something structured as dropzone.__ seems ideal. Dropzone.info would be perfect, but we have to wait to hear back from the squatter. The best alternative would be something "official" sounding -- the most recognizable out of the ones mentioned so far seems to be: dropzone.cr, due to the reason given (kat.cr is a very popular torrent site, so it may lend legitimacy to dropzone.cr). The others -- .cc, .li, .sh -- 'sound' scammy.

ghost commented 9 years ago

yep, @eragmus +1

eragmus commented 9 years ago

I actually think dropzone.market may be the best option, since .io is not available. .market is pretty innocuous sounding, and quite an appropriate TLD that instantly clarifies the purpose behind DropZone. Further, novelty domains are becoming less novel as companies use them increasingly. Even Google joined in (https://abc.xyz and they bought the entire .app TLD) recently. Whatever you guys think. I saw a message from @krisives that it's available on NameCheap for $25.

ghost commented 9 years ago

Funny, that was my choice as well :)

But we must be aware, these are novelty domains, lame as it sounds but people do not trust them automatically like the old ones or even those with 2 or 3 letters.

17Q4MX2hmktmpuUKHFuoRmS5MfB5XPbhod commented 9 years ago

Considering what's available, dropzone.market has a rather nice ring to it. I think that works for me. @eragmus or @aynik - want to acquire that for us?

krisives commented 9 years ago

Sorry, I only removed the message because I forgot it had already been mentioned. I think it's the best deal and the most fitting TLD. If anyone wants help registering the domain and pointing it to Github let me know what I can do.

ghost commented 9 years ago

@17Q4MX2hmktmpuUKHFuoRmS5MfB5XPbhod surely +1

About registering the domain, I'm not quite sure, we all know domains are the first law enforcement target, what about registering under Miracle Max and paying with btc? https://www.namecheap.com/support/payment/bitcoin.aspx

krisives commented 9 years ago

I'm okay with the heat. Google my name !

ghost commented 9 years ago

WTF, are you that guy?? The one who donated bitcoin to Snowden first? :D

krisives commented 9 years ago

Haha I'm that guy yes

ghost commented 9 years ago

Dude you were my hero that day! I cannot believe you ended up here, very glad I would changetip you if it worked on GH! :+1:

ghost commented 9 years ago

https://github.com/17Q4MX2hmktmpuUKHFuoRmS5MfB5XPbhod/node-dropzone/pull/3

So it does work after all :D

eragmus commented 9 years ago

FYI, there's also dropzone.org:

https://mark.com/domains/dropzone.org

17Q4MX2hmktmpuUKHFuoRmS5MfB5XPbhod commented 9 years ago

I believe further discussion can be moved to new issues. Closing.