COME CREARE UNA CRIPTOVALUTA? Parte 1

Поділитися
Вставка
  • Опубліковано 14 жов 2024
  • INTRO:
    In questo video tutorial vedremo come costruire una blockchain sulla quale effettuare delle transazioni con una criptovaluta da noi creata. Questa blockchain e' solo a titolo dimostrativo per poter comprendere cosa si cela dietro a questa tecnologia. Il codice puo essere trovato nel seguente GitHub Repository: github.com/Fed...
    LINK:
    Versione Javavscript: • Creating a blockchain ...
    REFERRALS
    💰 BINANCE 5% kickback: www.binance.cc...
    💰 CRYPTO:COM 25$: crypto.com/app...
    💰 BITPANDA 10€: www.bitpanda.c...
    💰 COINLIST: coinlist.co/cl...
    DONAZIONI
    🎱 BTC: 1AbCnwFnK726uYf3buszxh2fJsob6FQpBq
    🎱 ETH: 0xdc9a21d0bc19f018904e676da5eb5add064f8822
    🎱 ADA: DdzFFzCqrht7xttZtuWZAKjGNYLKhNdk8xvpVLuCVtN1BQ9cZrXdcNxSQpwjHFb132bN1zfeSeswiDCzSJPjzW87X58kBbBNNNqGbKwA
    🎱 BNB: 0xdc9a21d0bc19f018904e676da5eb5add064f8822
    CONTATTI:
    👋 / federico-gentile-b1091552

КОМЕНТАРІ • 35

  • @martinamarmilla6155
    @martinamarmilla6155 3 роки тому +1

    ciao federico , sto avendo dei problemi . quando avvio il comando dal prompt per aprire la pagina di jupyter mi dice che non esiste nessuna pagina. come possof fare?( intendo quando scrivo jupyter notebook)

    • @federicogentile90
      @federicogentile90  3 роки тому

      Ciao Martina non sono di aver capito quale sia l'errore ma assicurati cmq quando digiti "pip install jupyter notebook" che il tuo virtual environment sia attivo. Per assicurarti che sia stato installato correttamente lo dovresti trovare listato utilizzando il comando pip list. Se non funziona nulla, puoi installare il Anaconda (lo trovi su google) e te lo installa automaticamente.

  • @stefanopisa9635
    @stefanopisa9635 3 роки тому +1

    Quando inserisco la riga di codice: fede_chain = BlockChain()
    Schiaccio "run" e mi dà un errore tipo: NameError: name 'BockChain' is not defined.
    Mi puoi dare una mano?

    • @federicogentile90
      @federicogentile90  3 роки тому +1

      Ciao! Ti sei assicurato di aver lanciato la cella dove hai definito la classe BlockChain? 16:14 Dovrebbe essere la soluzione al tuo problema.

    • @stefanopisa9635
      @stefanopisa9635 3 роки тому +2

      @@federicogentile90 grazie mille, problema risolto 💪🏽

  • @stefanopisa9635
    @stefanopisa9635 3 роки тому

    Ciao, scusa il disturbo. Se non viene fuori "valid BlockChain" ci sono problemi?
    Secondo problema, quando verifico non vengono fuori le scritture che vengono a te. Io verifico con shift+entrt, è giusto?

    • @federicogentile90
      @federicogentile90  3 роки тому +1

      Ciao! Se non ti esce la scritta block chain is valid allora molto probabilmente potresti avere qualche errore di sintassi. Ad ogni modo puoi risolvere tutto se vai sul mio account github e provi a paragonare il tuo codice con il mio :)

  • @ettoregalli72
    @ettoregalli72 3 роки тому +2

    Complimenti! Video veramente ben fatto!
    E' in programma spiegare ruolo e metodo della proof of work e di altre proof simili?

    • @federicogentile90
      @federicogentile90  3 роки тому

      Ciao e grazie mille! si la proof of work la pubblico credo questa domenica o la prossima :) Cmq l'ho gia registrata

  • @LightTundra59
    @LightTundra59 Рік тому

    CIAO scusi ma a me non va non e che me lo potresti correggere perfavore :
    from hashlib import sha256
    import json
    In [19]: class Block:
    def __init__(self, index, timestamp, data, previous_hash=''):
    self.index = index
    self.timestamp = timestamp
    self.data = data
    self.previos_hash = previous_hash
    self.hash = self.calculate_hash()

    def calculate_hash(self):
    hash_str = str (self.index) + self.timestamp + self.data + self.previous_hash
    return sha256(hash_str.encode('utf-8')).hexdigest()

    def content(self):
    print(jsno.bumps(self.__dict__, ident=2, default=str))


    class Blockchain:
    def __init__(self):
    self.chain = [self.generate_genesis_block()]

    def generate_genesis_block(self):
    return Block(0, '27/12/2022', 'Genesis Block')

    def add_block(self, new_block):
    new_block.previous_.hash = slef.chain[-1].hash
    new_block.hash = new_block.calculate_hash()
    self.chain.append(new_block)

    def is_chain_valid(self):
    for i in range(1, len(self.chain))
    current_block = self.chain[i]
    previous_block = self.chain[i-1]
    if current_block.hash != current_block.calculate_hash():
    raise ValueError (£'current_block.hash != current_block.calculate_hash()')
    elif current_block.previous_hash != previous.block_hash:
    raise ValueError (£'current_block.previous_hash != previous_block.hash()')
    print('valid blockchain')

    def content(self):
    for block in self.chain:
    block.content()
    In [ ]: fede_chain = BlockChain()
    In [ ]: Blok1 = Block(1, '27/12/2022', 'transazione numero 1')
    fede_chain.add_block(block1)
    Block2 = Block(2, '27/12/2022', 'transazione numero 2')
    fede_chain.add_block(block2)
    In [ ]: fede_chain.is_chain_valid()
    In [ ]: fede_chain.content()

  • @federicogentile90
    @federicogentile90  3 роки тому

    Impara a programmare sulla blockchain di Ethereum: ua-cam.com/play/PLi0c61zihNimXEDUIvlzIP7chcnjjW1q3.html

  • @federicogentile90
    @federicogentile90  Рік тому

    Per chi fosse interessato vi lascio 100$ di referral bonus per usare Binance: www.binance.com/en/activity/referral-entry/CPA?fromActivityPage=true&ref=CPA_00TK6V2ZLW

  • @incontroincontri5809
    @incontroincontri5809 2 роки тому

    Sei disponibile a progetto per creazione di una coin?

    • @federicogentile90
      @federicogentile90  2 роки тому

      Ciao Grazie mille per avermi contattato. Al momento purtroppo sono gia' impegnato in troppi progetti e quindi non ho tempo. Nel caso mi libero un po' posso contattarti :)

  • @flame4694
    @flame4694 3 роки тому +1

    non trovo il percorso nel prompt dei comandi. qualcuno disposto ad aiutarmi?

    • @federicogentile90
      @federicogentile90  3 роки тому

      Ciao! non sono sicuro di aver capito quale e' il tuo problema ma potrebbe essere che il comando "ls" non funziona e quindi devi usare "dir" .
      Altrimenti ti consiglio di installare Anaconda ed usare quello come prompt :)

  • @flame4694
    @flame4694 3 роки тому

    quali tasti usi per fare la verifica?

    • @federicogentile90
      @federicogentile90  3 роки тому

      Ciao! Intendi SHIFT+ENTER come al minuto 16:14?

    • @flame4694
      @flame4694 3 роки тому

      @@federicogentile90 si, per convalidare nel minuto 25:43 uso gli stessi tasti SHIFT+ENTER?

    • @federicogentile90
      @federicogentile90  3 роки тому

      @@flame4694 si corretto! per "lanciare" una cella basta SHIFT+ENTER :)

  • @incontroincontri5809
    @incontroincontri5809 3 роки тому

    Federico per un lavoro è possibile un tuo contatto diretto ?

    • @federicogentile90
      @federicogentile90  3 роки тому

      Grazie mille per l'interessamento ma al momento sono molto impegnato dal punto di vista lavorativo quindi non posso offrire la mia disponibilita' per ulteriori progetti. Nel caso abbia piu' tempo posso ricontattarti :)

  • @salvatorefabbrizio
    @salvatorefabbrizio 3 роки тому

    Ciao Federico, possibile un contatto in privato!? Vorrei chiederti una cosa

    • @federicogentile90
      @federicogentile90  3 роки тому

      Ciao Salvatore, puoi contattarmi tramite linkedin se vuoi. Trovi il link in descrizione :)

  • @nikobartoli9236
    @nikobartoli9236 2 роки тому

    Ciao fede a me non prende il comando timestamp

  • @incontroincontri5809
    @incontroincontri5809 3 роки тому

    linkedin non è un contatto diretto

  • @DJTekko
    @DJTekko 2 роки тому

    una volta arrivato alla fase del blocco1 18:56 a me da un errore

    • @DJTekko
      @DJTekko 2 роки тому

      TypeError: Block() takes no arguments

    • @federicogentile90
      @federicogentile90  2 роки тому

      @@DJTekko ouch! hai provato a copiare ed incollare il codice da github e vedere se ottieni lo stesso errore? Da quello che hai scritto potrebbe essere un errore di spelling forse?

    • @DJTekko
      @DJTekko 2 роки тому

      @@federicogentile90 ci provo
      Grazie

  • @Ramtzy._.
    @Ramtzy._. 2 роки тому

    dio cane lho rifatto tre volte e anche corretto e mi continua a dare syntax error

    • @federicogentile90
      @federicogentile90  2 роки тому

      In che riga? hai controllato i ":" alla fine del nome della funzione? Sono corrette le indentazioni?

    • @Ramtzy._.
      @Ramtzy._. 2 роки тому

      @@federicogentile90 Si ho rivisto e anche rifatto ma a sto punto credo sia un bug

    • @federicogentile90
      @federicogentile90  2 роки тому

      @@Ramtzy._. Potresti usare un altro editor tipo VS code oppure scrivere il codice in un file .py invece di usare jupyter notebook. Inoltre puoi copiare il codice da github che trovi nella descrizione del video :)