Buongiorno,
è da un pò che mi sto documentando e provando a fare esperimenti con gli smart contract. Non ho nessun fine particolare solo curiosità per il momento, visto che il tempo che ho a disposizione non è nemmeno poi tanto.
Mi domandavo se qualcun'altro qui ha già scritto qualche smart contract, oppure vuole condividere qualcosa che ha fatto o rispondere a domande/chiedere aiuto.
Alcuni link utili per cominciare:Tools:
-
http://remix.ethereum.org/-
https://metamask.io/-
http://truffleframework.com/ganache/Guide:
-
https://medium.com/@mvmurthy/ethereum-for-web-developers-890be23d1d0c -
https://cryptozombies.io/-
http://www.cryptominando.it/2018/04/17/creare-uno-smart-contract-solidity/-
https://medium.com/@mycoralhealth/learn-to-securely-share-files-on-the-blockchain-with-ipfs-219ee47df54c - IPFS
Documentazione: -
http://solidity.readthedocs.io
Condivido qualcosa che non credo sia ovvia (almeno non per me )
Stavo cercando di creare uno smart contract per salvare un numero indeterminato di bytes nel modo piu efficente possibile in quanto i costi possono essere esorbitanti come sappiamo tutti. Dopo vari tentativi non andati a buon fine ho trovato che l'EVM utilizza come dimensione nativa word a 256bit -> 32byte, questo significa che anche se provi a salvare meno di 32byte ti ritrovi sempre a passare minimo 32byte (sticazzi!
)
Ho verificato la cosa con questo smart contract usando
http://remix.ethereum.org e Metamask
pragma solidity ^0.4.19;
contract SimpleStorage {
bytes input;
function setInput(bytes enterBytes){
input = enterBytes;
}
}
Provando a passare a setInput 1 byte
["0x00"]
o 32 byte
["0x00","0xaa","0xff","0xaa","0xaa","0xaa","0xaa","0xaa",
"0x00","0xaa","0xff","0xaa","0xaa","0xaa","0xaa","0xaa",
"0x00","0xaa","0xff","0xaa","0xaa","0xaa","0xaa","0xaa",
"0x00","0xaa","0xff","0xaa","0xaa","0xaa","0xaa","0xaa"]
Metamask avvisa che la dimensione non varia:
Data included: 100 bytesInfine passando 33 byte
["0x00","0xaa","0xff","0xaa","0xaa","0xaa","0xaa","0xaa",
"0x00","0xaa","0xff","0xaa","0xaa","0xaa","0xaa","0xaa",
"0x00","0xaa","0xff","0xaa","0xaa","0xaa","0xaa","0xaa",
"0x00","0xaa","0xff","0xaa","0xaa","0xaa","0xaa","0xaa","0xaa"]
Ottengo
Data included: 132 bytes