Bitcoin Forum
August 17, 2018, 07:36:05 PM *
News: Latest stable version of Bitcoin Core: 0.16.2  [Torrent].
 
   Home   Help Search Donate Login Register  
Pages: « 1 2 [3] 4 »  All
  Print  
Author Topic: [Programmazione] Smart Contracts  (Read 643 times)
Pinty87
Jr. Member
*
Offline Offline

Activity: 38
Merit: 0


View Profile
April 28, 2018, 04:16:26 PM
 #41


Considera che in questo caso, partendo dai dati della transazione(input data qui ad esempio) è possibile risalire al contenuto della variabile pass, quindi la seguente operazione non è sicura:

Code:
   
function setPass(string pass) {
        uint pass_cryptata = uint(keccak256(pass));
...
}

Ah ok questo non lo sapevo. Quindi in tal caso di dovrebbe criptare il contenuto prima offchain, inviare il contenuto già' criptato, e conservare la chiave offchain.


in pratica c'è questo per fare quello che vuoi https://ipfs.io/, però devi avere un server dove farlo girare è un altra cosa che ho nella lista "da guardare"  Smiley



In tal caso comunque la chiave pubblica la dovrei conservare io?
Comunque tirare su il server IPFS ci metti un secondo, la problematica sta più su come effettivamente utilizzarlo con Blockchain.


Super interessante. Praticamente lo si può' usare come storage decentralizzato? Cioè' invio un contenuto hashato, ok, ma per riprenderlo mi basta avere questo hash? Quindi teoricamente chiunque disponga di questo hash può' vederne il contenuto? Dovrei quindi rinviare il contenuto criptato dal quale ipfs genera un hash per ovviare a questo problema?

Qua' c'e' un tutorial non male
https://medium.com/@mycoralhealth/learn-to-securely-share-files-on-the-blockchain-with-ipfs-219ee47df54c


Certo che Blockchain + IPFS e' qualcosa di veramente potente.
1534534565
Hero Member
*
Offline Offline

Posts: 1534534565

View Profile Personal Message (Offline)

Ignore
1534534565
Reply with quote  #2

1534534565
Report to moderator
1534534565
Hero Member
*
Offline Offline

Posts: 1534534565

View Profile Personal Message (Offline)

Ignore
1534534565
Reply with quote  #2

1534534565
Report to moderator
1534534565
Hero Member
*
Offline Offline

Posts: 1534534565

View Profile Personal Message (Offline)

Ignore
1534534565
Reply with quote  #2

1534534565
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1534534565
Hero Member
*
Offline Offline

Posts: 1534534565

View Profile Personal Message (Offline)

Ignore
1534534565
Reply with quote  #2

1534534565
Report to moderator
1534534565
Hero Member
*
Offline Offline

Posts: 1534534565

View Profile Personal Message (Offline)

Ignore
1534534565
Reply with quote  #2

1534534565
Report to moderator
lorecoincoin
Jr. Member
*
Offline Offline

Activity: 60
Merit: 0


View Profile
April 28, 2018, 09:23:40 PM
 #42

WOO ECCELLENTE QUI COME HO CAPITO SI STRUTTURA PROPRIO UN NUOVA CHAIN INTERESSANTE
Pinty87
Jr. Member
*
Offline Offline

Activity: 38
Merit: 0


View Profile
April 28, 2018, 11:34:21 PM
 #43

Qualcuno ha già' provato Ganache? Permette di creare una chain Ethereum personale dove testare tutto quello che serve. In più' ha anche il block explorer.

http://truffleframework.com/ganache/
Pinty87
Jr. Member
*
Offline Offline

Activity: 38
Merit: 0


View Profile
April 30, 2018, 12:37:33 AM
 #44

ma scusate ...uno scambio di gattini mi sembra limitato ...potrebbe associarsi al token un auto ..una targa..o un bene infungibile giusto?



Lol. CryptoKitties e' il progetto più geniale di sempre. Sai quanti milioni sono stati spesi dagli utenti per comprare sti cazzo di crypto gatti?

https://www.cnbc.com/2017/12/06/meet-cryptokitties-the-new-digital-beanie-babies-selling-for-100k.html

Oltretutto se guardi sui vari profili c'e' gente che ha oltre centinaia di k $ di cryptogatti... il che fa riflettere. Alla fine sono solo token ERC721 generati da uno smartcontract che in base ad alcuni valori creano un' IMMAGINE di un gatto di colore diverso.

Considerando che il cryptogatto più caro e' stato venduto per centomila dollari...
Makkara
Member
**
Offline Offline

Activity: 322
Merit: 59


View Profile
May 01, 2018, 11:31:29 AM
 #45

Qualcuno ha già' provato Ganache? Permette di creare una chain Ethereum personale dove testare tutto quello che serve. In più' ha anche il block explorer.

http://truffleframework.com/ganache/

Ne ho sentito parlare bene ma per il momento faccio ancora tutto da remix, non sono ancora arrivato al punto di avere un interfaccia "seria". Ho notato che su cryptozombie c'è anche una parte per l'UI, magari comincio a vedere da li.

Aggiunti i nuovi link che hai pubblicato

Piggy
Sr. Member
****
Offline Offline

Activity: 462
Merit: 696


The Future Of Work


View Profile WWW
May 04, 2018, 09:46:37 AM
 #46

Ottimo thread per esempi, lascio qua una robetta che avevo proposto su meta e per la quale ho preso pesci in faccia  Undecided, è comunque un esempio completo, con tanto di interfaccia web.

Tutte le istruzioni e codice sono qui:
https://bitcointalk.org/index.php?topic=3464730.msg36022761#msg36022761



███████████████████████████████████████
███████████████████████████████████████
███████████████████████████████████████
███████████████████████████████████████
███████░░░░░░░░░░░░░░░░████████████████
███████░░░░░░░░░░░░░░░░████████████████
███████░░░░░░░░░░░░░░░▄████████████████
███████░░░░░░░░░░░░░▄██████████████████
███████░░░░░░░░░░░▄█████▀░░░░░░░███████
███████░░░░░░░░░▄█████▀░░░░░░░░░███████
███████░░░░░░░▄█████▀░░░░░░░░░░░███████
███████░░░░░▄█████▀░░░░░░░░░░░░░███████
███████░░░▄█████▀░░░░░░░░░░░░░░░███████
███████░▄█████▀░░░░░░░░░░░░░░░░░███████
████████████▀░░░░░░░░░░░░░░░░░░░███████
███████████████████████████████████████
███████████████████████████████████████
███████████████████████████████████████
███████████████████████████████████████

BLACKBOX OS
The Future of Work. Decentralized.
███████████████████
███████████████████
████████████▀▀█████
███████▀▀▀    █████
███▀    ▄▄▀  ▐█████
█████▄▄█     ██████
██████▌ ▄█▄  ██████
███████████████████
███████████████████




█ ANN THREAD █
Makkara
Member
**
Offline Offline

Activity: 322
Merit: 59


View Profile
May 04, 2018, 05:46:04 PM
 #47

Ottimo thread per esempi, lascio qua una robetta che avevo proposto su meta e per la quale ho preso pesci in faccia  Undecided, è comunque un esempio completo, con tanto di interfaccia web.

Tutte le istruzioni e codice sono qui:
https://bitcointalk.org/index.php?topic=3464730.msg36022761#msg36022761



Pinty87
Jr. Member
*
Offline Offline

Activity: 38
Merit: 0


View Profile
May 05, 2018, 11:40:23 PM
 #48

Ottimo thread per esempi, lascio qua una robetta che avevo proposto su meta e per la quale ho preso pesci in faccia  Undecided, è comunque un esempio completo, con tanto di interfaccia web.

Tutte le istruzioni e codice sono qui:
https://bitcointalk.org/index.php?topic=3464730.msg36022761#msg36022761


Complimenti Piggy!
lorecoincoin
Jr. Member
*
Offline Offline

Activity: 60
Merit: 0


View Profile
May 07, 2018, 09:01:14 AM
 #49

qualcuno sta studiando eos?
Makkara
Member
**
Offline Offline

Activity: 322
Merit: 59


View Profile
May 07, 2018, 03:10:28 PM
 #50

qualcuno sta studiando eos?

No, hai qualche link per vedere un pò cosa offre rispetto ad ethereum? Domani se riesco scrivo un altro entusiasmante esempio per smart contract  Shocked

alexrossi
Legendary
*
Offline Offline

Activity: 1806
Merit: 1038


Make winning bets on sports with Sportsbet.io!


View Profile WWW
May 08, 2018, 08:44:20 AM
 #51

Bello cryptozombies! Salvato nei preferiti

   ▄▄██████▄▄
  ████████████
███▄▄
 ██████████████▀▀▀██▄
████████████████   ▀██▄
████████████████     ▀██
██████████████       ██▌
██████████████        ▐██
██▌▀▀██████▀▀         ▐██
▐██                   ██▌
 ██▄                 ▄██
  ▀██▄             ▄██▀
    ▀██▄▄▄     ▄▄▄██▀
      ▀▀█████████▀▀





███████████████████████████
███████████▀▀         ▀▀███
████████▀   ▄▄██▄  ▀█▄  ▀██
██████▀  ▄████████▄  ▀█  ██
████▀  ▄██████▄▀  ██▄    ██
███▀  ██████▄▀  ▄▀████▄  ██
██▀  █████▄▀  ▄▀██████  ▄██
██  ▀███▄▀  ▄▀███████  ▄███
██    ▀██▄▄▀███████▀  ▄████
██  █▄  ▀████████▀  ▄██████
██▄  ▀█▄  ▀██▀▀   ▄████████
███▄▄         ▄▄███████████
███████████████████████████
███████████████████████████
████████▀▀       ▀▀████████
█████▀   ▄ ▀███▀ ▄   ▀█████
████  ▄████▄ ▀ ▄████▄  ████
███  ▄ ▀███▀ ▄ ▀███▀ ▄  ███
██  ▄██ ▀▀ ▄███▄ ▀▀ ██▄  ██
██  █▀ ▄█ ███████ █▄ ▀█  ██
██   ▄███▄ █████ ▄███▄   ██
███  ████▀ ▄▄▄▄▄ ▀████  ███
████  ▀ ▄ ▀█████▀ ▄ ▀  ████
█████▄  ▀▀▄ ███ ▄▀▀  ▄█████
████████▄▄       ▄▄████████
███████████████████████████
████████     INDUSTRY LEADING BITCOIN SPORTSBOOK     ████████
LIVE
STREAMING
DAILY PRICE
BOOSTS
LIVE DEALER
CASINO
FAST & SECURE
PAYMENTS
███████████████████████████
████████▀▀       ▀▀████████
█████▀  ▄█▄  ▀  ▄▄   ▀█████
████  ▄  ▀    ▀█████▄  ████
███  ▀█▀   ▀█▄   ▀▀██▄  ███
██  ▄    █▄  ▀██▄▄  ▀█▄  ██
██  █▀ ▄  ▀█▄  ▀███▄  ▀  ██
██    ▄██  ▀██▄  ▀███▄   ██
███  ▀████  ▀███▄  ▀█▀  ███
████  ▀████  ▀████▄    ████
█████▄   ▀▀█▄  ▀▀▀   ▄█████
████████▄▄       ▄▄████████
███████████████████████████
███████████████████████████
████████▀▀ █████ ▀▀████████
█████▀    ▄█████▄    ▀█████
██████▄▄█▀▀ ▄▄▄ ▀▀█▄▄██████
███▀███▀ ▄███▀███▄ ▀███▀███
██   █ ▄██▀     ▀██▄ █   ██
██   █ ██         ██ █   ██
██   █ ▀██▄▄█ █▄▄██▀ █   ██
███▄███▄ ▀██▄▄▄██▀ ▄███▄███
██████▀▀█▄▄ ▀▀▀ ▄▄█▀▀██████
█████▄    ▀█████▀    ▄█████
████████▄▄ █████ ▄▄████████
███████████████████████████





..WIN WITH US!..
Pinty87
Jr. Member
*
Offline Offline

Activity: 38
Merit: 0


View Profile
May 08, 2018, 04:39:41 PM
 #52

qualcuno sta studiando eos?
Domani se riesco scrivo un altro entusiasmante esempio per smart contract  Shocked

Aspetto con ansia!  Grin
lorecoincoin
Jr. Member
*
Offline Offline

Activity: 60
Merit: 0


View Profile
May 08, 2018, 05:34:48 PM
 #53

bankera utilizzera lo standard ERC223 Contract
https://blog.bankera.com/2018/05/07/why-is-the-bnk-token-unique/
di seguito il link per trovare il contratto
https://github.com/Bankera-token/BNK-ETH-Contract

erc223 pare abbia più alti standard di sicurezza e verifica degli errori
pub.vale.123
Newbie
*
Offline Offline

Activity: 22
Merit: 0


View Profile
May 16, 2018, 03:32:08 AM
 #54

ho sviluppato diversi smartcontract in Solidity, e Golang, chiedi pure in pvt o email

pub.vale.123@gmail.com
Makkara
Member
**
Offline Offline

Activity: 322
Merit: 59


View Profile
May 16, 2018, 03:10:44 PM
 #55

ho sviluppato diversi smartcontract in Solidity, e Golang, chiedi pure in pvt o email

pub.vale.123@gmail.com

Ciao quali sono i vantaggi nello sviluppare in Golang è più semplice rispetto ad usare Solidity ?

Makkara
Member
**
Offline Offline

Activity: 322
Merit: 59


View Profile
May 24, 2018, 11:37:09 AM
 #56

in questi giorni sto cercando di capire come mandare token ad uno smart contract e poi fare in modo di riprenderli, la prima parte è piuttosto semplice e ci sono diversi modi per farlo ma la seconda mi sta facendo smadonnare non poco.
Appena riesco a capire per bene il tutto metto qua un esempio funzionante :/

lorecoincoin
Jr. Member
*
Offline Offline

Activity: 60
Merit: 0


View Profile
May 25, 2018, 01:59:43 PM
 #57

la funzione di redistribuzione è un casotto hahaha alemno per me
Makkara
Member
**
Offline Offline

Activity: 322
Merit: 59


View Profile
May 28, 2018, 01:03:05 PM
Merited by Piggy (2)
 #58

Come gestire token in uno smart contract:

Dopo tanta pazienza sono riuscito a capire come funzionano i trasferimenti, quindi cerco di spiegarvi come funziona il tutto, come al solito con esempi che potete provare da voi.

Contratto:

Code:
pragma solidity ^0.4.4;

contract SafeMath {
  function safeMul(uint a, uint b) internal returns (uint) {
    uint c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function safeSub(uint a, uint b) internal returns (uint) {
    assert(b <= a);
    return a - b;
  }

  function safeAdd(uint a, uint b) internal returns (uint) {
    uint c = a + b;
    assert(c>=a && c>=b);
    return c;
  }

  function assert(bool assertion) internal {
    if (!assertion) throw;
  }
}

contract Token {
  
  function balanceOf(address _owner) constant returns (uint256 balance) {}
  function transfer(address _to, uint256 _value) returns (bool success) {}
  function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {}
  function approve(address _spender, uint256 _value) returns (bool success) {}
}


contract Banca is SafeMath{
  mapping (address => mapping (address => uint)) public tokens; //questo mappa un indirizzo di un token con un la mappatura di un indirizzo di un proprietario e la quantità di quei tokens
  
  event Deposit(address token, address user, uint amount, uint balance);
  event Withdraw(address token, address user, uint amount, uint balance);
  
  function Banca(){
  
  }
  
  function depositoToken(address token, uint amount) {
    if (token==0) throw;
    if (!Token(token).transferFrom(msg.sender, this, amount)) throw;
    tokens[token][msg.sender] = safeAdd(tokens[token][msg.sender], amount);
    Deposit(token, msg.sender, amount, tokens[token][msg.sender]);
  }
  
  function prelievoToken(address token, uint amount) {
    if (token==0) throw;
    if (tokens[token][msg.sender] < amount) throw;
    tokens[token][msg.sender] = safeSub(tokens[token][msg.sender], amount);
    if (!Token(token).transfer(msg.sender, amount)) throw;
    Withdraw(token, msg.sender, amount, tokens[token][msg.sender]);
  }
}  
 

Contratto token per i test:
https://github.com/ConsenSys/Tokens/tree/master/contracts/eip20


Come depositare i token nel vostro smart contract?

I tokens possono essere spediti direttamente all’indirizzo dello smart contract con il vostro client preferito, però questo modo non permette allo smart contract di tenere traccia di chi ha mandato i token, quindi non è ottimale. Per il risolvere il problema dobbiamo prima mappare un indirizzo di un token con la mappatura di un indirizzo di un proprietario e la quantità di tokens:

Code:
mapping (address => mapping (address => uint)) public tokens;

e permettere allo smart contract di spendere parte dei nostri token, questo avviene tramite il metodo approve del contratto del token che volete trasferire. Interfacciandosi direttamente al contratto del token basta chiamare:
   
Code:
approve(address _spender, uint256 _value)

A questo punto il contratto può spendere parte dei vostri token, fino a raggiungere l’ammontare specificato. In questo modo lo smart contract prende in consegna i tokens e può salvare il mittente e la quantità di tokens depositati tramite la seguente funzione:

Code:
function depositoToken(address token, uint amount) {
    if (token==0) throw;
    if (!Token(token).transferFrom(msg.sender, this, amount)) throw;
    tokens[token][msg.sender] = safeAdd(tokens[token][msg.sender], amount);
    Deposit(token, msg.sender, amount, tokens[token][msg.sender]);
  }


Come prelevare i token dal vostro smart contract?

Per prelevare i token dallo smart contract non dobbiamo far altro che chiamare dal nostro smart contract la funzione transfer del contratto del token:

Code:
function transfer(address _to, uint256 _value) returns (bool success) {}

Che compare nella nostra funzione per il prelievo:

Code:
function prelievoToken(address token, uint amount) public payable{
    if (token==0) throw;
    if (tokens[token][msg.sender] < amount) throw;
    tokens[token][msg.sender] = safeSub(tokens[token][msg.sender], amount);
    if (!Token(token).transfer(msg.sender, amount)) throw;
    Withdraw(token, msg.sender, amount, tokens[token][msg.sender]);
  }










Piccola parentesi:
In un primo momento per generare un token velocemente avevo utilizzato il codice presente qui, senza guardarci troppo: https://www.ethereum.org/token

Come potete vedere questo in questo contratto la funzione transfer non ritorna un boolean, quindi in questo caso quando chiamo la funzione transfer dal mio contratto mi ritorna sempre false e metamask mi avvisa che c’e’ un errore nel contratto, senza specificare dove. Dopo un pò che ci ho sbattuto la testa mi sono reso conto del problema e preso un contratto standard da qui https://github.com/ConsenSys/Tokens/tree/master/contracts/eip20 anche se per risolvere il problema nel vecchio contratto basta aggiungere:

Code:
   function transfer(address _from, address _to, uint256 _value) public returns (bool success) {
        _transfer(_from, _to, _value);
        return true;
    }

Questo è tutto. Se qualcosa non ho chiaro chiedete pure.

lorecoincoin
Jr. Member
*
Offline Offline

Activity: 60
Merit: 0


View Profile
May 31, 2018, 09:58:02 PM
 #59

 Tongue ;)grazie ma quindi questi consentono di trasferre automaticamente i token a chi invia eth
?
Makkara
Member
**
Offline Offline

Activity: 322
Merit: 59


View Profile
June 01, 2018, 05:14:31 AM
 #60

Tongue ;)grazie ma quindi questi consentono di trasferre automaticamente i token a chi invia eth
?

si, basterebbe aggiungerci la parte dove lo smart contract riceve gli eth, che qui non c'è. Appena ho un po di tempo vedo di fare un esempio, perchè lo smart contract non può ricevere direttamente ethereum se non è abilitato a farlo.

Pages: « 1 2 [3] 4 »  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!