Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.
My friends and I used WASTE about a year ago and were impressed with it. The idea is excellent and has great potential.
I have since switched to Linux and was disappointed to see that there is as of yet no Linux client, shame.
How is the development going with this project? Is it safe to assume that WASTE is dead? Are there any forks of this project or similar clients out there?
There is a wxwaste version posted, but you have to compile it yourself. There are some features missing from it as well.
There has been no real development posted yet, though we've been promised it for a long time. I have not found a good replacement as of yet either. So, we're all kind of stuck. Ideally, we should at least be able to get out a macos binary as well for distribution as well.
I'm currently underway with a C# clone of waste, i haven't posted it to sourceforge because it is still under pre development.
If you could make the interface one window with tabs, I'd love you forever.
Sadly, my intentions of deving this clone are minimal. I hope to accomplish only a handful of things.
Cut out the needless parts of WASTE, such as bandwidth saturation, multiple profiles, bandwidth management etc. I also currently don't expect to implement Chat in mine, not as of yet anyway. And simplify the program by abstracting away needless clutter like private keys and IP information etc.
The goal in the end is ultimately this. Eliminate the 32GB key leakability when using the 64bit blowfish encryption and switch over to 128bit AES. Simplify the client server handshake so that authentication is simple but still robust to improve network performance in file transfers, thus getting better than 1MB/s. And overall write the code in something OOP so that it is maintainable by a general community.
The code will be licensed under a free license (MIT), and not GPL'd. I also am not concerned with the linux community, thus have chosen C# because of it's native cryptography functions. And relatively simple maintainability.
Other features will be crypted config and other local files that will be portable (associated with a profile) (and no registry). Meaning the user will be able to pull settings files or key info from one machine to another and have "no setup".
But to answer your question, intend to mimic the WASTE UI to basically a 't'.
All right folks...
I think it's obvious that sh4rd is done with this project.
Shall we make a fork?
My only problem is, I don't feel competent enough to be a project admin.
I only want to make WASTE more usable.
Of course all cryptographical weakness shall be dealt with at some point, but that's not my piority.
I would like to add, that I fully agree with those who say the source should be in order before adding new features (for example some kind of modell-view-controller separation) it just won't happen... Either we start anew or patch up the hull and pray. (well best would be the two kind of development going on concurently)
I agree with you there. A year ago, I offered sh4rd my help to fix a few bugs or write a Qt version of waste to be more OS independent. But my attempts to understand the code weren't that successful.
My vote would be to start over from scratch, but before that there should be some theoretical work. I know, this sounds crazy, but a protocol description would be helpful. Our goal shouldn't be to bring up a new version asap, but to make it a good piece of program, with all the anoying stuff like documentation. That way, if the project leader or even all other developers quit for whatever reasons, some other people can take over more easily.
There are many project going around that try to create the same or similar thing like WASTE, so we should focus on not making just another buggy F2F application.
@Deman - if you feel confident enough to start a fork and program then is there really a need to worry about being project leader? I'm sure once some progress is being made more people will jump on and help you. I know I wouldn't mind contributing for the web site and other web related stuff.
Anyway it would be nice if someone picked this project back up.
Starting from scratch is a hell lot of work... But maybe it should be done.
The gui parts (and the entangled control) are terribly messed up, true, but as i saw the lib can be saved... maybe. Question is is it worth saving?
Till that, I will patch this up for my own use, and if time comes make a release out of it.
anyone up for making a google groups or setting up a small form so we can easily start peacing together some ideas on how the new client should work?
For starters we could discuss it here in the Open Discussion.
My main concerns about WASTE that it's too robust. It creates a VPN like thing, and only uses it for a limited number of things. Maybe we should write a (optionally) saturated VPN (if there is none) and a client that can operate on any VPN (or LAN) and focuses on efficient transfer, for example multisource download and distributed database (of file names and hashes) for faster searches and an optional point to point encryption for private chat. And a good usable GUI!
Also if not the fully fledged VPN, there might be a gain from separating the node (that can route traffic, and an access point to clients) and the client.
Divide and counquer, you know the drill...
Other thing is, i love c++ really, but i only use it for small projects mainly for my own amusement... So we might consider other alternatives like... java. :S I personally hate java or at least strongly dislike it, but java has it's advantages. For example standard crypto api, and less pain in the ass with the memory handling. (maybe faster development could be achieved and more maintainable code)
These things just occured to me, there are reasons pro and contra, we might as well discuss them.
This project, http://sourceforge.net/projects/j-waste/ is a java implementation of WASTE that was started (and dropped). It was apparently part of a college project for three individuals, and as such has a software req'ts doc and a protocol specification that looks pretty good. The project web site, http://skorpan.campus.ltu.se/j-waste/
I took the source, modified the structure to use an eclipse development environment and started some java Gui work just to learn java. The code seems reasonably well organized and documented - not at all like the WASTE code. It has a minimal functionality, minimal to no error recovery but I can connect and retrieve files. It also has a pretty good start at a language independent implementation.
We had identified a number of modifications we wished to do to the WASTE implementation model. These modifications may not be compatible with the current protocol specification:
- A server only mode. The interface to this would be a remote graphical client that connect to the server using the WASTE protocol for management. This would allow secure remote management of the server.
- A change to the connection model. Connection from A to B through C would require no decryption of the A-B traffic by C - merely relaying the traffic. That way both A and B would require permission to have access each other (not like current model).
Personally I think java is bad. It eats up memory like nothing and it's hard to find programmers for. However if you want a good example of a better WASTE alternative take a look at Alliancep2p http://www.alliancep2p.com/overview.shtml . It's an open source F2F program similar to Waste but has way better features. Most notably, multisource downloading, different levels of encryption, and easy set up for making networks or using it strictly for friend to friend. Me and my group of 25 people used it for a few months but ran into a few bugs that caused us to switch to Waste. The bugs we had where javaw eating up ram until you had none left, client lockups and crashes due to a bunch of different reasons, Internet speeds getting crippled due to alliance eating up all the possible open sockets wile downloading, and also smaller bugs like spamming chat text by holding down enter.
So if you want to go the java way, then there's no point in reinventing the wheel. Take a look at alliance and see if you can fix the existing bugs in it. If not then I'd suggest sticking with c++.
As for making a better Waste, I think the Gui definitely needs work. It's not user friendly at all and scares away new people that hate to deal with options and features just to set up the client for the first time.
I think the whole concept of connecting to people with encryption codes needs to be rethought of too. It would be nice if all the info was in a smaller encrypted code (ie. ip/dns address, Username, secret code, port..etc) this way theres no need in posting IPs or DNS addresses and crazy long codes anywhere. They can just hand out a simple one line encrypted code that has it all. Take a look at how Alliancep2p does it and you will be amazed at how simple and nice it is. It also offers one way buddy adding as an option for people that want to make networks. Basically in the options panel you check "auto accept connections" and anytime someone adds your code to their client it auto accepts and adds them to yours. Waste kind of does this but in a more annoying way. So I think that part could use some work.
Multi source downloading is a must in todays world.
Java is not the way then...
"Most notably, multisource downloading, different levels of encryption, and easy set up for making networks or using it strictly for friend to friend."
Yes I too think these are a must... And different speed limits for lan is a must too.
My first release of the 'improved' WASTE, it's nothing big really, just things that bugged me and some others, and were really simple to fix.
Added: Start minimized preference
Added: Minimize instead of close preference
Added: connect host[:port] in perform
it will attempt to connect you to the specified host when WASTE starts
Added: Transfers button in the main toolbar
Yeah nothing new, only it's a release now, so easier to use.
You know what else would be nice? Tabbed chat windows. That way we don't have loads of windows open at the same time. Just one window for all the chats, PMs to people on their own little tab (like pidgin aka. Gaim).
Oh yeah, it was actually the second thing i missed, then i thought why develop yet again an other gui when there is so much IRC client? Right now i'm hesitating between an IRC relay and an improved chat window. The sad thing is, probably easier to improve the chat window... So the relay is in my long term plans and the chat window is in the short-middle i guess. (i already tried to improve it once but failed miserably, i have to understand first what exactly these guys were doing...)
Tried to fix the behavior of chat windows on incoming messages...
Sometimes the message windows pop forward even when you try to do something else, this release intents to fix the problem making it to a preference.
Bug reports are appretiated as long as they are about the changes I made.
it's good to see your doing work on Waste. Keep it up.
Sorry i had to revoke this release, it was totally buggy it killed the flash option pretty much, so back to .413 i guess. :(( And what ai really don't understand is this bug is not consistent (windows poping in your face on new message, most of the time the older release works just fine...)
im all for jumping on board with helping waste, im disappointed to not see any real progress in months again... I had a while back made an attempt (in failure) to do some waste modding. maby we should look at the base, creating a vpn thats secure. There are some serious security flaws in waste, most notiably the way anyone can read a privmsg from someoen connected to your mesh, that should be fixed with a dh1080 key exchange... i could go on, unless these things have been fixed, i havent taken a look lately.
Seconded, WASTE is a very nice project, and these modern times realy need something like WASTE, it's sad to see it die out.
the only thing that annoys me now are the speeds, very low compared to FTP, even with direct connections over LAN (1300kb/s max instead of 9mb/s over ftp)
I'm not much of a coder but if i can help in any other way i'd be happy to.
Yeah... the speed is terrible, and worse, there is no reason behind it as far as i can see. I watched the cpu and disk usage, WASTE lives up to it's name with wasting resources. I can only think the transfer algorithm is flawed by design (guess there is some hack about multithreading like in the scanning algorithm or it's not piped, didn't even dared to take a look at it)
"most notiably the way anyone can read a privmsg from someoen connected to your mesh"
I don't know if this is a flaw more like it's like this by design. You trust your mesh or don't it's the least of the problems (for most of us).
Speed is critical, and the inability to script the client. Sometimes I wish for simple things like Away messages... (that's my next on the list I have to fail with) So my friends wont flood me to respond when i'm not even there... Simple things to be useable as a chat/transfer client, which is not yet.
If some of the original developers would help me maybe I could make some real progress... not sure of it though.
There were a lot of bug reports from friends that I can't even reproduce (and they are really annoying by nature: for example jumping mouse cursor on incomming messages, chat windows jumping forward when they shouldn't and the like).
As Dan has mentioned, there is actually an existing project (www.alliancep2p.com) AllianceP2P that has some very exciting functionality, while there are still little bugs or glitches that sometimes cause it to misbehave. I don't think it is sensible to put the blame on the Java language, even with the fact that I am personally not a big fan of Java.
I am actually just testing the switch to AllianceP2P from waste, mainly because its working support of unicode, cross-platform and multi-point download. Though I am not saying waste is completely dead, but I see the days of having waste to support the above-mentioned too far away. With this fact, is it easier and a more sensible/efficient use of resources to fix the little glitches and bugs of a more functional programme, instead of starting most stuff from scratch?
No offense to any waste developers or fans. You have done a nice job, and I appreciate all the work/time you have spent also.