ibGib - a different approach to code and data

Recently, @dimitarvp expressed interest in the use case of a forum driven by ibGib. This happens to be the use case I had just mentioned to @AstonJ when he was being an awesome admin here and merged my public posts for the @wraiford account (btw I can’t respond directly to DMs there as that account is now locked). So since it’s come up twice, and it’s a definitely awesome early use case for ibGib, I wanted to speak to it.

ibGib as a Forum

ibGib is self-similar, so it’s a perfect fit for recursive patterns. Forums are one such pattern, with the forum itself being the top-level “post” with the poster being the company/entity forum admin. Each category, e.g., Lounge, Elixir News, Elixir Chat, etc., is a child “post” of the top-level one (but restricted to the forum admin/site creator). Each topic created in that category is then a child of that. In the current state of ibGib, a rudimentary version of this already available. But what would ibGib offer over current solutions?

ibGib Advantages

  • Beyond block chain features
    • Immutable
    • Content-addressed
    • Fully versioned with audit history
    • Hash-based data integrity
  • Easy Immersion and Context
    • For example, I’ve recently started “gardening” (farming really…) and keep track of it in ibGib. You can check out my current winter garden or even my entire back yard - remember you can click on most of the ibGib and navigate to them and there will be children ibGib.
    • But say I have a bug on a plant that I don’t know, e.g. these aphids or weird millipede things. I have these tagged as bugs for my personal use, but in a forum context, I should be able to publish a new “post” or “question” that then gets queued like a question on Stack Exchange. But in this case, the user would be able to just click on it, and they could be instantly immersed in the rest of the garden for context and may be able to spot other things in addition to providing help on that one thing.
    • Note that these are two views of the same data: 1) Personal Note App (kinda like time-based Google Keep or a “git notes”), and 2) Publicly tagged interaction “forum”.
    • Also note that this doesn’t have to be a human responding to the question.
      • Since people are given identities in exactly the same way as AI/ML autonomous services would be given identities (check out the “identity” rel8n for any ibGib e.g. here), the handler for the question tag queue could be an autonomous service (“micro-service” sigh) that analyzes the pic and if it’s found to be a known bug it could provide the answer/info with links automatically! Humans would be busy generating their own gardens/source code/domain data, as well as be the ones who resolve very tough questions.
    • It should be readily apparent that this structure would seemlessly integrate with both Augmented and Virtual Reality.
      • Augmented for browsing, etc., when interacting with the “forum”.
      • Virtual when used to generate other other ibGib artifacts (environments for a game e.g.) within a completely virtual
    • The analog to “the garden” in programming would be the source code. You could simply tag your code question there, or create a comment in that code that is itself the question that you will tag (and the answerers would navigate “upwards” if needed). The real-world code is the environment, just as the surrounding garden is the environment in the given example domain, and the answerer could navigate it if applicable.
  • “BS Filtering”
    • For example, you can accept advice from people who actually generate their own gardens, as opposed to…
      • Armchair quarterbacks.
      • Paid employees with a superficial agenda, i.e. professional endorsements outside of their profession for products that they don’t actually use.
        • Down with the Internet of Ads!
      • Trolls, either innocuous or malicious
        • Fake reviews
        • Fake news
        • Bots
    • This also generates the ability for lifetime reviews of products.
      • This would act like automatic product registration.
      • Provides a feedback mechanism to the manufacturers of goods beyond surveys.
      • and more…

Going Forward

As I said, I wanted to give a little insight into the forum-like experience possible and how it would integrate with the other services. Notifications are almost complete, and with a little more work, PubSub functionality could very easily integrate the Twitter-plus experience. Simply a better image viewing/gallery experience already replicates existing Pinterest-like experience. The list goes on and on, and these things are not even that difficult. There are a couple hard problems left that I’m still working on, but there is a lot of low-hanging fruit for some advanced functionality. But it’s relatively slow because I’m getting to be an old man and I can’t code 12+ hours a day every day anymore.

Of course, there is still a ton of work to be done going forward to get full functionality of current forums. But it should be apparent that this underlying technology enables an entirely new experience for integration of our current paradigms, forums being only one of them. Basically, just fiddle around with the app and imagine what can be done by more people who don’t suck at front-end UI coding… :wink:

Thanks again for your interest @dimitarvp, and thanks again @AstonJ for your help with my accounts and all your work on this forum.

4 Likes

No problem re the help William :slight_smile:

I just went to look at the videos in the first post but they’re down, will you be adding any more soon? I definitely recommend a few… perhaps start with an overview, what ibGib is, what makes it different, where it excels, the types of applications it would make sense to use it, etc and then a few getting to grips with it/tuts etc :023:

4 Likes

Yeah, I went ahead and took down the videos, as they don’t add enough value. I’m just not a UI/Hype/Video/Salesman person, and like everyone, I have to make decisions on where to focus my resources. I’m choosing to invest it in the more abstract problems involved with the technology as I’m pretty much the only person who could do it at this point without a huge investment by anyone else. But many of these things I’m talking about here could be implemented relatively easily by others who don’t necessarily need to understand the deeper side of things. But it’s the vision of integration that is most important for anyone else to understand. With ibGib, there is deep integration with “blogs”, “forums”, “chats”, “twitters”, “pinterests”, etc. It’s just in reach!

But I was/am pretty much ready to accept that others just won’t get it until I already do it, but I received interest from @dimitarvp, as well as encouragement from a few others, yourself included so I’m trying one last time to try to lay out exactly the gains you would get with this technology. The only thing out there close to it is IPFS, especially so since relatively recently they started using named merkle links in IPLD instead of just “link” (which is analogous to my named “rel8ns” in my graph structure). That is one of the keys, but they’re still going about it in a different way, thinking very much in the concrete protocol implementation layer for “replacing the broken internet”, e.g., they are obsessed with p2p and its relationship to decentralization. but I digress…I love their work and I love their investments and I love their :heart:, let alone their technical abilities at that layer.

3 Likes

Thank you @dimitarvp for your continued interest :+1:

I’ve created an archive of my current code base that you can find at https://www.ibgib.com/files/ibgib_repo_2017_11_26.tar.gz

One more point about your question of apps in general, beyond the “forum” app. Because the ibGib engine basically creates the semi-structured data in a NoSQL json format, it is essentially a protocol or a standard that creates a self-similar data store. So creating an app is simply creating anything that interacts and stores your data which adheres to the standard.

So the current web app is actually multiple “apps”. For example, yesterday I created a todo list for me to go through today. So the “as-todo” view as shown in the URL “is” a todo app. Notice that in addition to the standard text todo items, you can also use pics as todo items (which is how I personally use it usually). You can actually use any ibGib as a todo item, because the todo “app” is just a view working against this one data construct. This is useful, because I’ll most likely end up creating “sub-items” on at least one of those todo items. And then I’ll look at it via a different view. I use “as-folder” for complex rel8n navigation (simple navigation is possible just by clicking on the item and choosing nav), “as-chat” as a catch-all view like a gallery or a chat until I get something better in place. So each todo item is itself a chat, memo, gallery, folder, or even conceivably another nested todo list. It all depends on how you want to interact with the same data.

So to create new “apps”, I could expand on the current web app by adding new Angular 4 components views, or improve upon the existing views (they could use it). This is what I’ll personally do for the VCS functionality, which will be focused on the version control aspect. But an entirely new phoenix web app could be created that uses the ibGib engine. In fact, the way I’m architecting the distributed aspect, and if Elixir doesn’t fit your use case, you could re-write the engine in any language you want (non-trivial though) and simply expose via http a very simple ibGib communication API with only a get and put functions.

(Note: Https won’t be required, because of the way that nodes create their own secrets and the entire communication chain acts very much like a block chain for verification. It’s designed to operate in the light, and it could be your prerogative to create some kind of encryption in your web app node, but keep in mind that any node can define rules for accepting/rejecting whether to accept ibGib. So conceivably, some nodes could have an anti-encryption rule.)

For the time being, and assuming you don’t want to rewrite the entire engine, you could use the ib_gib Elixir app (I’ll publish to hex if you or anyone else is interested) and then create a phoenix app that exposes whatever functionality that you like. This is effectively using ibGib as a specialized merkle graph data store. The advantages, as I’ve tried to enumerate previously, are many, but the primary advantage from the POV of using it as your data store is that you’re able to replicate and actually share data among nodes easily. Easier than Linked Data, because each ibGib contains its own verifiable dependency graph a la the merkle tree aspect. Easier than a relational database or the like, because the configuration itself is ibGib data. It’s like having configuration and your transaction log be the data itself. In fact, were you to want to implement a transaction-like mechanism (with rollbacks, etc.), you would use the VCS functionality I’m working on now and create a local “transaction repo” and then “push” your local repo to your primary node (or wherever).

Anyway, I digress. Thanks again for your interest, and let me know if you have any more questions (here, not DM since @AstonJ answered that question for us) :smiley:

PS If you’re sincerely looking to learn about the ibGib engine, then perhaps doing some YouTube videos as @AstonJ mentioned above on some of these ways of using it may be a good thing. That will give you familiarity with what the engine is doing without wading through code, and it could provide benefit to others. At the very least, it’s an interesting learning experience for merkle tree navigation.

3 Likes

I’ve updated this thread’s wiki post again to reflect the new video series I’m doing with ibGib. Thanks @AstonJ for the suggestion of the YouTube videos - I’d become a bit embittered at that point in time, but I did take your suggestion under advisement! I do thank you for your support.

3 Likes

@ibgib Can we get your latest code snapshot, please? I’d like to start inspecting it.

2 Likes

Hey @dimitarvp! Great timing.

I’m going to be using the ibGib MVP web app as-is on my Path forward. l’m going to bicycle my way up from San Antonio, Texas to the Northwest USA. Sounds crazy, but crazy is what I do.

Why? The MVP is done. I’ve worked out the emergent distributed network algorithm but haven’t finished coding it. This was the last “hard” problem, but it ain’t for me to finish. My days of hacking at a computer are finally over!

I’m leaving it up to others such as yourself to pick it up! You can find the code at https://www.ibgib.com/src

The emergent distributed network is a huge opportunity for any entrepreneurial code monkeys who want to build a truly distributed web, and not one locked in to a transport layer stack or some huge authoritarian beaurocracy. It’s simply about the concise ibGib data construct and each node implementor (i.e. you) code your own authorization rules for receiving and sending these things. The result is a distributed git-like emergent network, just as open as our current web, but with huge advantages that accompany the synergy of the data.

I just made an introductory video on YouTube yesterday that also goes a little bit into some more advanced functionality of the current web app. But really, the value going forward is in the organic distributed network. Some others, like IPFS and Open Data, have a headstart on mindshare, but they don’t have what ibGib does!

2 Likes

That is my second living room then ^-^

1 Like

This is a bit strange. If you figured out the algorithm, why not implement it before passing the project to somebody else? You got unique insight on your own project and ideas, anybody else would take months or years to arrive at the same conclusions you did.

Or provide some sort of a whitepaper in the repo, please?

I mean, leaving the project when one of the most important pieces of algorithms isn’t implemented yet feels like a cliffhanger at the end of a series season… :frowning:

2 Likes

First…

That’s great! I couldn’t have said it better myself :smiley:

I ain’t passing the project to someone else! I’m still here 100%. I have the existing code sketched out, including the initial HORST/WOTS/SPHINCS-like hash-based keystone functionality implemented which leverages ibGib’s merkle DAG+DCG unique structure. I also have the ongoing VCS/Distributed issue ibGib for the protocol and VCS aspects. In particular, this whiteboard shows the protocol structure. That issue ibGib is better than a white paper, as it can track anyone’s questions for me as needed. The ibGib is the documentation. (In the future, documentation and code will be intertwined as it is a semantic version control system.) I also summarize the current status quite clearly and expansively on the next comment below that whiteboard.

But make no mistake, this protocol is now ready for others to get in on the action. And as I said, I’m still with the project 100%. It is the digital flesh of the culmination of my 39-year life’s work! But now is the time to eliminate the bus factor.

Gotta go…I’ve opened up that issue to logged in users. If you (or anyone) comment, be sure to ping me! I will make another YouTube video specifically about how contributing to the project going forward will happen. Spoiler! It’s not just my repo! That’s what we have to get out of our heads! It’s about the open data and protocol! :astonished::smiley:

1 Like

Well if you pass through the Amarillo/Lubbock/Clovis area… :wink:

1 Like

@dimitarvp I was thinking more on your concerns and I’ve created another video to both show what ibGib contains beyond current blockchain/DAG technologies, as well as going in to the unfinished aspect of the emergent distributed network algorithm that utilizes that additional structure. If I get any sort of response, I may go on to more specific questions while I’m on the road (Lord willing).

2 Likes

Well I’m off. I’ve made it about 50 miles so far. Taking it slow on my pack mule. Updates throughout the day at ibgib.com . Adding new ibGib each day to that “home page”.

We’ll see how far I get!

2 Likes

Bicycle Sojourn Complete! :sweat_smile:

I’ve now completed my bicycling sojourn for ibGib. I succeeded in biking from San Antonio, TX to Albuquerque, NM, with a total of about 900 miles! Many thanks to @OvermindDL1 for putting me up along the way in NM. He asked, and others have as well, why did I do this? So here is a summary post, and a little info on the why.

The Tech

I’ve had a hard time explaining the tech to others here and elsewhere. Since the use cases are so numerous and unified, it’s hard to pick just one (I sympathize with Juan Benet’s inability to communicate this in an interview with Y Combinator which lasted more than two hours). It’s a fundamentally new design, and it is the future of the web. So part of me figured that actually doing something in real life might get someone’s attention. So far it hasn’t - but there are still a few days left… Meh. :man_shrugging:

Meanwhile, just yesterday I had to sit through and stomach an extremely offensive “IBM Blockchain” commercial about coffee. I say offensive tongue-in-cheek here, because this is exactly a primary use case I’ve tried to describe to others - a deep, product-lifetime open database, which would enable not only this kind of tracking from the harvest/manufacture to the consumer, but throughout the consumer’s use of the product as well. (Also some salt in the wounds for me personally is that Kenya Nyeri coffee happens to be one of my favorites - if not my favorite - single origin coffee, stemming from its deliciously complex and fruity profile.) Note this has nothing to do with cryptocurrencies or financial transactions intrinsically - it’s about distributed architecture. But I digress.

Suffice to say, that the technology is there, is interesting, and there is still opportunity because I have reason to believe these companies (like IBM) don’t necessarily see the unification of these technologies with AI/ML, us humans, and truly distributed programming. One more time, here is a short list of use cases where this tech would majorly disrupt:

  • Product Reviews
    • Deeeeep reviews.
    • Less fake reviews.
    • Information provenance.
  • AI model/semantic versioning
    • Think git, but not only for text files.
    • This is like tracking the branching “biological” evolution of AI models’ DNA
  • Social Interaction
    • Think video games RTS + RPGs, but you are the player and you are playing yourself. You interact with others in real life situations - like riding a bicycle from point A to point B.
    • Note that in the future you also would interact with those aforementioned AIs in exactly the same manner (architecturally speaking) that you would interact with other human “players”, stemming from ibGib’s identification infrastructure.

Real World Quests

Beyond the tech, this was about me getting out and meeting people again in the real world. I’ve been couped up here at home for quite some time now, and it was exhilarating to get out and be doing something physical in the real world. Tired of video games and TV…Real Life - that’s where it’s at!

For example, I got to battle a real life, proper Texas Wind Storm. I couldn’t get out of 1st gear for almost the entire 50+ mile trip, despite being mostly on flat ground. I had started the day early at about 4:30 AM, and I didn’t finish that day until around 9:00 PM. The wind was nasty, and in the Texas Plains it kicks up the dust something fierce. For those of you who played Morrowind (of the Elder Scrolls series), I felt like I was in the blight. Add to that poor cell reception, a flat tire next to the interstate just before sunset, and scrambling somewhere to get shelter out of the storm, and it turned into a proper quest. I was not overly thrilled at the time, but hey - it was real life. How many game makers are out there right now working on yet another video game when we’re on the cusp of ourselves being the video game!

Good People and Belief

So in addition to battling the elements and seeing many a beautiful landscape, I met so many amazing and good people (including @OvermindDL1 which was awesome!). Just talking with people was such a wonderful experience for me. But we are so used to the environment in which we live, we can take this seeminly simple interaction for granted. So I think from this, many people may not realize how incredible they are. So many good people, and maybe they don’t see a path forward for themselves or their families when jobs start to disappear at an even more rapid pace due to technological progress, automation, virtualization, etc. ibGib is about working on the infrastructure to give them that path, to enable a harmonious existence between the virtual world and the physical one, with combining AR/VR/AI/IoT/Blockchain/and more - and We the People - by shifting from a world based on openness, transparency, witnesses, and most importantly Belief.

Anything is possible with Belief.

If you’ve made it this far, Thanks for reading! :laughing: God bless y’all! :pray:

Bill

4 Likes

Oh the blight has nothing on some of our dust storms! ^.^;

You were awesome though, great stories, great descriptions, great views. :slight_smile:

But yeah, Bill showing how his system works in person made it a lot more clear! I’m encouraging him doing a screencast. ^.^

2 Likes