Website/Webserver Support

BeeChat Network Forums BeeChat Network Discussion Website/Webserver Support

Viewing 15 posts - 1 through 15 (of 21 total)
  • Author
    Posts
  • #505 Reply
    Rik
    Guest

    I was talking to the admin of BeeChat in paperchan and suggested support for webserver/website. Here is what I suggested :-

    “You see, every Web server is based on ip protocol. But your network doesn’t seem to be related to ip at all. So instead you can create a standard in your protocol to identify packets that are Web related (maybe the bits at the beginning of the packet will have some sort of magic number), then after that you can put if the request is Put, delete, post or get. The Web server daemon can reply to get requests with the magic number at the beginning (to again specify that it’s a Website packet) and reply with html.

    You can also fork Firefox code and make your own browser that solely reads Web packets and renders the html file using whatever engine Firefox users (webkit or blink, not sure)”

    Would Highly suggest coding a webserver daemon and a client daemon for browsing webpages (client daemon will be built into the BeeChat browser).

    #506 Reply
    3iWEvuKEag
    Keymaster

    Hi Rik, nice to see you on here. As it is right now, there are several types of packets, and as you guessed it, they do have headers (also footers), to signal the beginning and end of a packet. The currently existing packets are as follows:

    – CHAT: This tells to BeeChat to enter into encrypted chat mode.
    – ZIPFILE: This tells BeeChat to enter into encrypted file receiving mode. This means waiting until the zip parts are complete, then unzipping it and then decrypting it.

    Those are the two types of packets for comms. Then we have a second type of packet used for Contact catching, to eventually save it into the contacts.json file. Those are:

    – NODEID: Basically the identification name for the XBee module.
    – UNAME: Username, haven’t found a use for this yet. Maybe regarding easy contact searching.
    – DH PARAMETERS: DH ElGamal Generator.
    – PUBLIC KEY: DH ElGamal Public key.

    In relation to your question, I believe it would definitely be possible to set up POST, GET, PUT, DELETE. I think I might need some help with that though.

    #508 Reply
    Rik
    Guest

    Sounds good, maybe you can use uname:nodeid as alternative to ip address?

    #509 Reply
    Rik
    Guest

    Do give RFC7231 a read and mimick the features of tcp from there, so that you have a Web server which is almost similar to ip protocol based Web servers

    #563 Reply
    Robert
    Guest

    I posted a message in the “suggestions” post, just posting it here as well because it seems more relevant here. Didn’t notice this topic when I was writing the message. Original message:

    There are two uses of BeeChat I have been pondering. Please tell me if my ideas are based on wrong assumptions, or if this work has been done elsewhere by some other means. I will split the two ideas here so that it is easier to differentiate between them.

    –“Command prompt”-style internet browsing
    This concept would work like this: User A sends user B a text message over BeeChat. User B has his BeeChat module connected to a machine that is running a program and monitoring the incoming text, looking for keywords. Example functionality: User A sends the message “show options”. User B script scans the text, and his Java program returns the text associated with “show options”. In this case, lets say its recipes. User A is sent a text list of different types of recipes (breakfast, lunch, dessert). By simply sending a corresponding number (1 for breakfast, etc), another list will be sent. With this functionality, some simple websites that contain information can be implemented into this program, and allow BeeChat to serve a database of information. The commands used to access such databases would need to become ubiquitous, so that users around the world can program the information they offer with some degree of universality.

    –“True internet” browsing
    Thinking of the previous idea brought me to this one. Say, there are places in Africa where radio antennas reach, but it is not possible to implement internet infrastructure. Could a custom program be written, so that a person who only has access to radio uses the BeeChat module, and writes a text message. That message is passed along by relays until it reaches a “true internet provider”. This machine would take the BeeChat text request, say, “google speed of sound”. This machine, which has access to “true internet”, automatically handles the request, converts the result back into radio waves with BeeChat, and the result is sent to the user in the area where only radio waves reach. Of course, this functionality would be limited at first, as only pre-approved simple actions would be limited. This functionality would help both people in poor areas by giving them some form of internet access, as well as people living “off-grid” who want some internet functionality, but don’t want the internet infrastructure near their home.

    What do you guys think about these ideas?

    #564 Reply
    3iWEvuKEag
    Keymaster

    –“Command prompt”-style internet browsing
    This concept would work like this: User A sends user B a text message over BeeChat. User B has his BeeChat module connected to a machine that is running a program and monitoring the incoming text, looking for keywords. Example functionality: User A sends the message “show options”. User B script scans the text, and his Java program returns the text associated with “show options”. In this case, lets say its recipes. User A is sent a text list of different types of recipes (breakfast, lunch, dessert). By simply sending a corresponding number (1 for breakfast, etc), another list will be sent. With this functionality, some simple websites that contain information can be implemented into this program, and allow BeeChat to serve a database of information. The commands used to access such databases would need to become ubiquitous, so that users around the world can program the information they offer with some degree of universality.

    That is a fantastic idea Robert. Gandalf and I were discussing something quite similar but for a bartering platform. It would work quite similarly, I like the concept of using that for other types of information. I guess the next step with this concept would be prioritizing what would be the most important “script” to make first?

    Regarding BeeChat as a whole, I am waiting for people to test out the software to know which bugs people are having to fix them in v.0.2.

    –“True internet” browsing
    Thinking of the previous idea brought me to this one. Say, there are places in Africa where radio antennas reach, but it is not possible to implement internet infrastructure. Could a custom program be written, so that a person who only has access to radio uses the BeeChat module, and writes a text message. That message is passed along by relays until it reaches a “true internet provider”. This machine would take the BeeChat text request, say, “google speed of sound”. This machine, which has access to “true internet”, automatically handles the request, converts the result back into radio waves with BeeChat, and the result is sent to the user in the area where only radio waves reach. Of course, this functionality would be limited at first, as only pre-approved simple actions would be limited. This functionality would help both people in poor areas by giving them some form of internet access, as well as people living “off-grid” who want some internet functionality, but don’t want the internet infrastructure near their home.

    That was definitely mentioned elsewhere, on some posts I forget where, several people have mentioned this idea of “beaming” internet to a disconnected machine. Implementing this into BeeChat wouldn’t be too difficult either, one such implementation could be as follows:

    Nodes in channel: Node A (coordinator), Node B, Node C (out of reach from Node A, connected through Node B)
    Dependencies: ddgr (DuckDuckGo from command line https://github.com/jarun/ddgr)

    1. Whenever Node A is connected to the internet, through some kind of background script, it will send a cryptographically signed message saying it has Internet to all Nodes in the network. This way, Nodes know which Node has internet and which one doesn’t.
    2. Node C user types into the BeeChat commands: “search “speed of sound wikipedia””, and sends the request to the closest node with internet.
    3. Node A receives the request, and passes the request into the ddgr utility stdouting it into a file. Node C waits.
    4. Node A sends the file to Node B, and eventually reaches Node C (contents encrypted so only Node C can see its contents).
    5. Node C decrypts the file and the response is displayed on screen.

    #566 Reply
    Robert
    Guest

    It’s great to hear this is an accepted idea by at least a handful of people. The only step now is me ordering the parts required for two BeeChat nodes. Is there any way to drive the cost down of the hardware? I’m based in Ireland and i’m looking at $150+ before any shipping.

    #567 Reply
    3iWEvuKEag
    Keymaster

    The first question I should ask is what functionality are you looking to use BeeChat for?

    #568 Reply
    Robert
    Guest

    I am interested in helping the development of BeeChat any way I can. I have a Computer Science degree with a focus on networking and cloud technologies, so I am interested in developing the software side of it. I am personally interested in security, even though I didn’t pick that degree. I want to learn more about encryption while developing the ideas discussed, as well as any other ones that we might develop along the way. I am not particularly interested in cryptocurrencies, but I am not opposed to helping with that too. My main interest in BeeChat is its potential to be a secure, decentralised network that can be relied upon if there is no internet. A sort of backbone for natural disasters/censorship.

    The reason I want to buy two is so that I can develop and test the work as I go along. Hope that answers your question.

    #570 Reply
    3iWEvuKEag
    Keymaster

    I am very glad to hear that you share my vision with this project.
    To answer your previous question on cheap modules, I posted XBee model 3’s in the parts list but BeeChat works perfectly fine with the older model 2’s which are around half the price all things considered. Nice thing about it is they come with a pre-built antenna (making it cheaper), this also means they’re only useful for a smaller range than the newer models. This is the same setup I used for creating BeeChat before I got XBee model 3’s.

    I assume since you are ordering everything from Digikey deliveries will be as cheap as possible.

    Regarding help with development, I think it would be great if we can narrow down an area of focus in BeeChat. What do you think would be vital in this alternate backbone?

    #571 Reply
    Robert
    Guest

    I’m not sure I understand the question. We need a reason why BeeChat should exist, and we have that, I think most security/privacy oriented people will see the benefit of this network. We need to develop genuine uses for BeeChat, things that people will want to use it for beyond a “just in case” scenario. I think something like bringing internet-style connectivity to rural areas will help people see the benefit. During and after development, the marketing side will need to worked on as well. Lots of charitable start-up events happen (Mozilla, Google, EFF etc…) where people are given the chance to state their case in exchange for funds. Spreading the word about BeeChat, once we have something more tangible to show, will help us make the infrastructure and ubiquity of the network a reality. That’s what I think is vital in the long run.

    As for an area of focus now? I’m not sure. I’m still not entirely clear where we stand. What is the current capability of BeeChat?

    It’s hard to get a clear understanding until I can start working myself on it. I have ordered two of each of the parts listed, they are on the way.

    Until then, what do you think is most vital for BeeChat, short-term and long-term?

    #572 Reply
    3iWEvuKEag
    Keymaster

    The reason I developed BeeChat is to have an open-source communications infrastructure, that no one or nothing can shut down. It is an evolution of ham radio, as it is completely wireless, does not require a license and is based on data (instead of mostly voice).

    This is the roadmap I had in mind:

    • April: Release of software alpha
    • May-June: Barter channel + makefile separate from MainApp.java
    • June-July: Release of BeeChat repeater case and 3D model: Solar, home and car version
    • July-September: Release of Graphical User Interface
    • September: Release of dedicated BeeChat mobile device
    #573 Reply
    Robert
    Guest

    Are you working on BeeChat full time? That seems like a very ambitious timeline. Another thing I was considering, should we port BeeChat over to Python? I have my experience with Java myself, but Python seems the direction the industry is heading, and it might attract a few more developers who prefer P over J. If this transition to Python is a good idea and will ever happen, should it not be discussed and done as early as possible, to avoid re-work?

    Also, could you clarify what “repeater case” and “3D model” means?

    By mobile device, how do you think it would be best to go about developing that? What cheap phones would be compatible with the Bee hardware? Additionally, I was hoping to develop the mobile BeeChat version in order to bring “internet-style” functionality to old phones (as in non-smartphones). While of course I’m also interested of bringing this to modern phones, I think it would be great to create a disaster/censorship-proof phone. I’m thinking an old Nokia, with the microphone and antenna parts taken out, and they just plug in when you need to use them, so the phone can’t be used against you in any way. Eventually this could be developed in minimalist, security-focused phone. I know there are many people who would rather not have a smartphone, but they keep on because you “need one” to get by in today’s society. This simple Bee phone would allow them to still receive work related e-mails and such while still maintaining the level of privacy they desire.

    While I’m on this, a dedicated e-mail server/protocol that takes in e-mail in the regular sense and automatically beams it through BeeChat (and vice-versa, you write a BeeChat e-mail and the server its sent to converts it to regular e-mail). This would allow a BeeChat user (phone or PC) to communicate with professional bodies (say, a potential employer) without requiring the other party to use BeeChat. Enabling BeeChat users to talk to non-Bee users would increase the reach and functionality of the network, I think.

    #574 Reply
    3iWEvuKEag
    Keymaster

    BeeChat is my main priority right now, I would love for it to be in widespread use before we are forced to give up even more of our liberties.

    I do see the point with Python, the issue is I can’t code in Python myself. In terms of speed, Java is faster than Python as it is a compiled language. It takes less time to execute a code. Python is an interpreted language and it determines the type of data at run time which makes it slower comparatively. If someone wants to port it to Python, I’d be glad to help.

    On the other hand, some parts of BeeChat can and should definitely be in Python. In fact, XBee model 3’s have MicroPython embedded support. https://www.digi.com/resources/documentation/digidocs/PDFs/90002219.pdf
    This allows the user to run python code directly on the XBee device, and could be used for some functions of BeeChat. The thing is that relay devices don’t need to run BeeChat themselves since they have nothing to decrypt, just re-route. Maybe you find some purpose to the micropython functionality?

    Also, could you clarify what “repeater case” and “3D model” means?

    My idea was to make a weatherproof (rain proof mainly) case where a BeeChat dongle would fit, as well as a battery, and charge controller. On the outer part of the case there would be a solar panel of 5 Watts or so. The purpose of this device, which should cost around USD 50-80, would be to act as a node that could be left on top of a tree or somewhere people don’t really see it, but would extend the range of the local BeeChat network. Essentially a tiny, solar-powered repeater. The 3D model part is simply design that can be easily 3D printed with, you guessed it, a 3D printer.

    Regarding the mobile device, what you saidis exactly what was on my mind as well. I think even better than one of those old phones would be to use something like the ZeroPhone. https://wiki.zerophone.org/index.php/Sourcing_ZeroPhone_parts It is a Raspberry Pi Zero-based phone with ARM Linux on it. Which means BeeChat is 100% compatible. My vision for the device was a highly rugged Linux portable computer that has BeeChat by default, which would make it similar to a walkie talkie but data based instead of voice based (with mesh network capability).

    dedicated e-mail server/protocol

    I think this will be possible once we build the TCP/IP protocol Rik (the original poster of this topic) on top of BeeChat.

    #575 Reply
    Robert
    Guest

    I only mentioned Python because I saw it mentioned somewhere. I’m happy to work with whatever language is best for the network. I can code a bit of Python but I don’t know enough about the differences between languages to give an educated opinion on micropython.

    Developing a cheap, easily mass-produced way of implementing the mesh infrastructure is important. However, I think that realistically, we should just develop good functionality of BeeChat, or a reason why it should exist. We can then focus on securing funding from different sources so that the physical mesh can be installed. There are several organizations that fund start-ups, as well as Kickstarter, stuff like that. Could we make it so that a user’s dongle also acts as a repeater? It would help extend the reach of the network, I think.

    I’ll have a look at ZeroPhone, I wasn’t aware of it, but it definitely sounds like a good idea.

    And yes, I saw Rik’s idea about mimicking the RFC protocol, I think it is a good idea, as it will make new developers be familiar with the style of work that is being done.

    I also agree that the network should be in place *before* it’s needed, as by that point it might be too late to organize something like this. Do you have any ideas about spreading the word about BeeChat? I found out about it on /pol/, I think it’s a good idea, as many users there might be interested in the technology from a social aspect. Maybe /g/ on 4chan, and some tech-related subreddits? Perhaps the BeeChat YouTube channel could be expanded with some videos in the future?

Viewing 15 posts - 1 through 15 (of 21 total)
Reply To: Website/Webserver Support
Your information: