Hey everyone,
Today we're launching the gateway prototype we've been working on so far as well as one example of a Specific File Search Index (SFSI) for Videos built on top of AFIX. I'd heavily urge you to keep in mind, these are not by any means finished products but prototypes modeling how things will work during the centralized parts of this project but as well how things should feel even after we've decentralized the project.
You can access the gateway at:
http://gateway.novusphere.ioThere's currently a restriction on indexing objects at 1 every minute to prevent abuse. Any content that we've added ourselves to the gateway (such as Movies or Music) have no copyright attached to them.
The main gateway of AFIX is designed with "Google" in mind. While currently, the search algorithm being used is very primitive and will be improved in time, it's abstract enough that it lets you search for whatever you want on the platform.
Let's take a look at some music by searching "NCS Music"
http://gateway.novusphere.io/sfsi/#/q/1/ncs%20musicLooking at "Ahrix - Nova"
http://gateway.novusphere.io/sfsi/#/27click "MetaData" and from this we can now understand some of the information associated with this record,
"MetaData": {
"AudioType": 3,
"Encoding": "audio/mpeg",
"Title": "Ahrix - Nova",
"Type": "audio",
"Hash": "QmbFwV3C73eqM5x2AvRjPYXifoBe73JkBQYWhn5jBsYR4t",
"Description": "Ahrix Nova NCS Release Music\r\nhttps://www.youtube.com/watch?v=FjNdYp2gXRY",
"PreferredNode": null
},
Clicking it, we can see the system is able to easily render the information into something useful your browser can play back for you. In this case, we don't need a specialized javascript to generate our html content, but rather just a static template
<script data-name="audio" type="text/x-handlebars-template">
<div class="text-center">
<audio controls autoplay>
<source src="{{ Url }}" type="{{text Object.MetaData.Encoding}}" />
</audio>
</div>
</script>
What about Movies? Lets take a look at "Cinderella"
http://gateway.novusphere.io/sfsi/#/21As we can see, the abstract gateway can handle videos in such a similar fashion.
The powerful part about AFIX is it doesn't dictate how the data is presented to you. An example of this is building a Specific File Search Index (SFSI) on top of AFIX through the PUSH API. We've already started on one for videos which can be viewed here:
http://gateway.novusphere.io/sfsi/video/Using the same engine that powers the AFIX Gateway with pure client side code (html/css/js) as any server-side processing is done by the PUSH API we can present the information for objects of type "video" in a completely different visually appealing way!
Through a SFSI, one can present information in a vastly different way, for example
http://gateway.novusphere.io/sfsi/video/#/watch/21versus
http://gateway.novusphere.io/sfsi/#/21Continue reading if you want, but less important and more so rambling on...Here is some relevant context formatted from what I said on Discord,
the whole platform (Novusphere) is built around storing arbitrary objects (metadata)... coin some fancy hipster term for this... Smart Objects.
So a smart object can really contain ANYTHING it's user defined and there's no formal structure to it. Now, if we want to take a look at an example, here's the object used for "The Bat"
{"Backdrop":"//image.tmdb.org/t/p/w1280/uRz6KgauShQ0HOESoJnOhLp5Wkh.jpg","Poster":"//image.tmdb.org/t/p/w1280/kuqbKnzULGFDZEBrOjQooBray5w.jpg","Genres":["Horror","Mystery","Thriller"],"Actors":null,"Director":null,"ReleaseDate":"1959-08-09T00:00:00","Runtime":80.0,"VideoType":2,"AgeRating":null,"SubtitleHash":null,"Title":"The Bat","Type":"video","Hash":"QmanUGSxZ7nzN8jCLRMsUS7a86oHF6jc8nZEBxCLAEqnfu","Description":"Mystery writer Cornelia Van Gorder has rented a country house called "The Oaks", which not long ago had been the scene of some murders committed by a strange and violent criminal known as "The Bat".Meanwhile, the house's owner, bank president John Fleming, has recently embezzled one million dollars in securities, and has hidden the proceeds in the house, but he is killed before he can retrieve it.","PreferredNode":null}
If you want to see that more nicely formatted...
https://jsonformatter.curiousconcept.com/There are going to be a few object types we define for example "video" refers to a video file being stored on IPFS with some basic information about it, however a user (or programmer) could define an entirely custom data type.
While a big part of our platform focuses on IPFS, this is a specific type of Smart Object at the end of day which is consistent in one parameter which is it must contain a field called "Hash" which stores the IPFS Hash field.
However, could a user define an object that doesn't use IPFS? Sure. Lets say you wanted to use an entirely different data storage and content delivery medium like Storj for videos, you could create some type "video_storj" but that's part of the job, there's a couple other steps. You then need to define a (java) script which explains to the browser "how do I render or present this content to the user" because typically, the browser isn't going to know what exactly to do with your Smart Object unless you tell it.
Now, you can take this an extra step further by creating an entire website (or SFSI) which specifically looks for "video_storj" and aggregates the data in a useful manner. The example/screenshots Dynamic showed you shows a useful aggregation of IPFS video meta data which is presented in the same way that a typical streaming site is set up.
Going further, you don't have to be some crypto hipster either. You can stick to good old HTTP/S as well! Typical streaming sites load their videos usually in iframe contents, so we can define such a type known as "iframe" which simply contains a link to the resource and maybe some additional presentation details and now a person can find that information which the gateway because a Smart Object details it. Essentially a traditional streaming website (one that uses mirrors to other centralized web servers) could be build on top of AFIX as well.
Really, the potential is limitless and how a developer of an SFSI chooses to utilize and present that meta data is entirely up to them. The system will be flexible and robust enough that they can easily define custom filter queries on-par with typical SQL without the gateway host having to worry about things like SQL injection. Of course, we'll be developing a few SFSIs of our own and setting up a few of our own standard Smart Object formats, but really nothing is to prevent any programmer from really utilizing the platform in their own way and making it "their own"
All of that explains to you what the system is like if you're a programmer, but generalizing what it comes down to as a user is sites such as Imgur, streaming websites, or even a database of torrent magnet links could be built on top of AFIX. Really it's up to the SFSI creator to make and choose their own schema to their Smart Object type and visual aesthetics and presentation of the data. The possibilities are endless.
Thanks.