bananachain
bananachain
files:
bananachain.js
This is a stupid implementation bounded to the profile but managing the media-assets. Instead the blockchain has to be changed. To be divided splited into parts
- Verification and data chain for the user/profile
- collection chain managing the user/profile vault of media ownership
- the media chain, where each media has changable public data and its own vault of the qualified dataset. Typical data which can change is history & ownership, annotations, previewimages, price, state of public/protected etc.
clearview.jsonc
early prototype of a dataset, lookalike populated with some fake data
bananachain.jsonc
more advanced mockup of a dataset with the implementation of the three chains
- profile
the changes of the profile with the steps- register name, birthday, email, protected status
- address location
- about me annotation
- verification stati
- apikey managment actions
- profile image upload and changes
- etc.
- profile collection
what does the user own and only theses media
the collection wallet - sore when:- delete an entry of a media whenever the ownership has been tranfered to someone else
- add media
- when uploaded by the profile/owner
- when media ownership is transfered to this profile but do not forget to add this in the history of the media → causes a change in the media chains
- media
aka mediachain
contains for each media a subchain which is the protocol of all changes like- history (exhibition, changes, protocol of happening, …)
- transfer of ownership
- price
- status protected/public/visible
- preview images
- …?
steakholder verfication transfer and chains of medi. user/profile/author
the three chains for profile, collection, media(subchains)
following attributes are unchangeable immutable
author, authorkey
license, contract depending on the license
natural rights are and must be granted
dated, title, material, dimension, mediatype, digital, physical
might be changed with a verified curatial review process
or simply by the author as long as the ownership is not
transfered
fake example json
{
"profile":
{
"datachain": [
{
/*
the genesis object encrypted
the data is prename, surname, birthday(year,month,day),protected(true|false),email aka the register data
*/
"previousHash" : "",
"hash": "2a3b4b556fcDdsghJkqweEasS8901a9b8c0d1e2HZuf34f5e6d7c0987b65a54123Aa==", //is this the public key for images?
"index": 0,
"nonce": "ADf91DfretzUqw28917==",
"timestamp": "2021-12-11 01:00:59 1234" //utc date string
}, {
/*
adding address data
*/
"previousHash" : "2a3b4b556fcDdsghJkqweEasS8901a9b8c0d1e2HZuf34f5e6d7c0987b65a54123Aa==",
"hash": "d2a3b4b556fcDdsghJkqweEasS8901a9b8c0dq41e2HZuf34f5e6d7c0987b65a54123x",
"index": 1,
"nonce": "ADf91DfretzUqwrt28917",
"timestamp": "2021-12-12 03:34:29 5678" //utc date string
},
{
/*email, password, address changes, verification steps, other profile data*/
}
],
"data":
{
/*thats what we read and show public*/
"id": "1637069100097",
"created": 1637069100097,
"password": "db6add538931ef1bf2f84923771bcfdd7a6b167415a8cb4b93e4f92b62c0807d",
"email": "world@world.com",
"prename": "hello",
"surname": "world",
"brithday": {
"year": "1965",
"month": "1",
"day": "9"
},
"location": {
"plz": "",
"city": "",
"street": "",
"housenumber": "",
"state": "",
"country": "",
"additional": ""
},
"protected": "false",
"verified": false,
"verificationcode": "",
"verificationdata": [],
"profilekey": "",
"apikey": "",
"aboutme": "",
"profileimage": "",
"following": [
"1637074477894"
],
"follower": [],
"updated": 1637269119781,
"session": "MzY0OTg4MF8zMTM2MzMzNzMyMzYzOTMxMzEzOTM3MzczNw=="// this not?
},
"collection" : [/*the ids of images uploaded and collected*/"1636732647079"],
"collectionchain" : [{/*initial upload*/
"hash": "MMyMzYzOTMxMzEzOTM3MzczNwzY0OTg4MF8zMTM2MzMzNz==", //hash of the collection data (json string)
"previousHash": "",
"index": 0,
"mediaid": "1636732647079",
"nonce": "zui91DfretzUqwrt2070o",
"timestamp": "2021-12-11 05:15:12 1789" //utc date string
}]
},
"mediachain": [{"mediaid":"1636732647079", "chain":[
{
"hash": "MMyMzYzOTMxMzEzOTM3MzczNwzY0OTg4MF8zMTM2MzMzNz==", //
"previousHash": "",
"index": 0,
"mediaid": "1636732647079",
"nonce": "zui91DfretzUqwrt2070o",
"timestamp": "2021-12-11 05:15:12 1789" //utc date string
}, {
/*whenever changed, updated or owner*/
}
]},{/*other media*/}],
"media" : [
{
"id": "1636732647079",
"updated": 1637166274606,
"type": "image",
"protected": false,
"owner": "1637074477894",
"created": 1636732647079,//this si the timestamp of the upload
"annotations": {
/*
"authorname": "pre and surename or artist/groupname",
"authorkey": "",
"dated": "",
"title": "",
"description": "",
"dimension": { "width": "", "height": "", "depth": "", "unit": "cm|px|none" },
"price": { "amount": "", "unit": "Euro|Credits|none" },
"licence": "immutable",
"material": ["list", "of", "posible", "materials"],
"mediatype": "image,video,code,review,3dasset, etc.",
"forsale": true,
"protected": false,
"digital": true,
"physical": false,
"contract": "link to the contract involves the immutable licence",
"previewimage": ["link to the 512x512px preview","max 4 images", "or one small mp4 video"]
*/
} /*this might change*/
},
{
"id": "1636733761951",
"updated": 1637166274610,
"type": "image",
"protected": false,
"owner": "1637074477894",
"created": 1636733761951,
"annotations": {
"title": "blabla no.1",
"authorname": "vault wallet",
"authorkey": "1637074450178",
"previewimages": ["/media/X_MTYzNjczMzc2MTg1OA__.png"]
}
}
]
}
dapp, D-APP iD-APP and DAO
Decentralized apps, on a blockchain bound by a crypto(currency)chain like Bitcoin,
with partial ai, or with smart contracts and a social idea, like voting saved and
secured by a blockchain like Ethereum.
Smart Contract
A program saved, preformed and secured on and by a blockchain. The program rules and circumstance
an operation can be performed on that blockchain like a transaction on Ethereum.
IPFS
Inter Planetary File System - a peer to peer database.
A peer-to-peer hypermedia protocol designed to preserve and grow humanity’s knowledge
by making the web upgradeable, resilient, and more open.
concept
Blockchain build to store data, the media/images, user profiles and roles, the transactions
and the verifications. In javascript, because even Solidity runs on the V8 vm aka node and the browsers.
Using IPFS to transfer and store the data, distributed nodes of the software able to run on servers/pcs
and client browsers.
- using nimiq(NIM) testchain to fiddle with payment and payed verification, stakeholder evaluation.
Digital originals should be stored in trusted save vaults.
4players video/audio chat for communication and better digital experience. VR/AR/XR multiverse tech based on three.js, basically a-frame for easy integration.
##First goal: create own playable prototype sandbox Dao-Dapp for public alpha &arr; beta with real NIM.##
Navigation Blockchain Greypaper Banana Project games chain thoughts