menu

BlogChain

Decentralizirani spletni dnevnik s pomočjo pametnih pogodb Ethereum in Web3.

BlogChain Logo

Opis

Decentralizirani spletni dnevnik s pomočjo pametnih pogodb Ethereum in Web3. Uporablja Truffle Framework za razvijanje pametnih pogodb in Bootstrap za spletno stran. Uporablja tudi IPFS za spletno gostovanje.

Značilnosti

  • Decentraliziran
  • Lahko uporablja katerokoli Ethereum omrežje
  • Uporablja IPFS za spletno gostovanje
  • Majhna velikost datoteke
  • več značilnosti prihaja …

TODO

  • Brisanje in urejanje prispevkov
  • Brisanje in prenos spletnih dnevnikov
  • Prevodi
  • Boljše testiranje kode
  • Boljša dokumentacija kode
  • JavaScript API

Kako deluje

TODO

Uporaba

BlogChain lahko zaženete lokalno, ali pa ga objavite na IPFS ali drugo gostovanje.

Zahteve

You must have Node.js and NPM installed. You also need to install Truffle Framework. You must be connected to the Ethereum blockchain to use the tests. I suggest you use Ganache, which creates a personal Ethereum blockchain. For web hosting, you can use IPFS.

Namestitev

Program lahko namestite iz GitHub skladišča z uporabo git ali s prenosom iz GitHub različic. Nato morate prenesti dodatne NPM pakete. BlogChain trenutno uporablja lite-server za lokalno spletno gostovanje.

git clone https://github.com/filips123/BlogChain.git
cd BlogChain
npm install

Poganjanje

Za prevajanje pametnih pogodb zaženite:

truffle compile

Prevedene pogodbe bodo shranjene v mapi build/contracts.

Za preizkušanje programa zaženite:

truffle test
# or
npm test

Za to morate biti povezani na Ethereum verigo blokov. Za to priporočam uporabo Ganache.

Za zagon lite-server za lokalno spletno gostovanje zaženite:

npm run dev

To bo prevedlo pogodbe in zagnalo strežnik na vratih 3000.

Objavljanje na IPFS

Spletno stran BlogChain lahko objavite na IPFS. Najprej ga morate namestiti in nastaviti path spremenljivko.

Najprej je potrebno kopirati prevedene pogodbe (build/contracts/BlogChain.json) in spletno stran (src) v isto mapo.

Nato sledite navodilom v Medium članku The ultimate end-to-end tutorial to create and deploy a fully decentralized Dapp in ethereum (ne pozabite spremeniti iem mape). Spodaj je njihov povzetek.

Zaženite ukaz:

ipfs daemon

To bo ustvarilo node. V drugi ukazni vrstici ali terminalu zaženite:

ipfs swarm peers

To bo omogočalo deljenje vaše vsebine. Nato zaženite:

ipfs add -r path/to/website/and/compiled/contract/directory/

To bo dodalo vašo mapo v omrežje. Videli boste dolg hash, ki je bil ustvarjen za vas. Zadnji je unikatni identifikator vaše mape:

added QmcCZLY7ubZ7pb5hkwSMzazNGkrJpfsHidiEwAi9ep9s7b website/css
added QmPboMFyB7p1rsjcEA8W9TfcQfkUeBhubZQDYPUVtnmXWF website/icons
added QmQGMa9EFZZ29qoL8SnaFcFmY32QKHC7GixxaEyw63aKHv website/js
added Qma1PfCMzemunU9wCTZHCMo6BfgGbMZ1Q3gXpaZTa6uY64 website

Kopirajte zadnji hash (primer Qmc73ZkESUP9sZyU4zGgDMQajfNVLqqKdxPut9GmvStjtJ) in zaženite:

ipfs name publish your-last-hash

Videli boste nekaj takega:

Published to Qmc2LMjSaXPFRvPJCCb4EfctYNLsKE1WTJC7BMxLrN9fmD: /ipfs/Qmc73ZkESUP9sZyU4zGgDMQajfNVLqqKdxPut9GmvStjtJ

To pomeni, da bo spletna stran na voljo na URL naslovu od zadnjega hasha (primer Qmc2LMjSaXPFRvPJCCb4EfctYNLsKE1WTJC7BMxLrN9fmD. Preverite jo lahko, tako da obiščete https://gateway.ipfs.io/ipns/<your-hash-here>. V mojem primeru je to:

https://gateway.ipfs.io/ipns/Qmc2LMjSaXPFRvPJCCb4EfctYNLsKE1WTJC7BMxLrN9fmD

Po posodobitvi pogodb ali datotek zaženite:

ipfs add -r path/to/website/and/compiled/contract/directory/
ipfs name publish your-last-hash

Objabljen hash bo vedno enak.

Nastavitve

Truffle lahko prilagodite v datoteki truffle-config.js. Za več informacij obiščite Truffle Documentation.

Več možnosti prihaja …

Uporablja

Prispevanje

Za prispevanje k projektu si preberite CONTRIBUTING.md.

Različice

Program za različice uporablja SemVer. Za ogled objavljenih različic obiščite oznake na skladišču.

Licenca

Program je zaščiten z licenco GNU General Public License v3.