Hola brotes, sigo aquí en la oscuridad pendiente de todo lo que publicas como bien sabes.
¿Has tenido algún inconveniente o desvarío a la hora de cobrar en ETH con la hacienda española? Yo he recibido parte de mi salario en crypto pero fuera de la UE (Suiza y hace bastantes años), no sé cómo andará el tema por aquí (en España donde resido ahora), puedo ponerme malo únicamente de pensarlo.
Mi asesor dice que es como una moneda extranjera mas, que a final de año se hace el cierre y se mira si subio o bajo
Por otro lado, yo desde fuera del mundo del desarrollo, habiéndome dedicado principalmente al pinta y colorea durante las últimas dos décadas, a la hora de empezar en desarrollo bajo blockchain me encuentro con que no hay digamos un 101 para noobs, quiero decir, con qué distro empezar, qué entorno usar, etc, o al menos yo no lo he encontrado.
Me pongo a mi mismo como ejemplo, heme aquí, con un portátil virgen recién llegado del almacén dispuesto a empezar a trastear en desarrollo blockchain buscando qué distro me convendría instalar y realmente me encuentro con que no hay una guía para el que quiera empezar de cero.
Quizá estaría bien que a los que pretendemos iniciarnos en el desarrollo blockchain, al menos en mi caso meramente por aprovechar el tiempo perecid y por ganas de aprender cosas nuevas, contar con un 101 o una guía para dummies, yo de hecho leyéndote pagaría con gusto el acceso a un índice de tus recomendaciones de por dónde empezar.
Gracias como siempre por compartir lo que sabes.
Este mundo es muy amplio y complejo.
Yo a los nuevos les recomendaria:
-Si eres front, React + web3.js
-Si eres back, rust (para programar en solana, terra, etc)
En ambos hay trabajo muy bien pagado a patadas y casi sin competencia
Para programar EVMs, o sea ethereum, BSC, Polygon, etc, yo tengo ubuntu en un W10
Hay que instalar:
-node.js
-npm
-solc, que es el compilador de solidity
-Visual studio code, con los paquetes de solidity. Solidity es el lenguaje estandar de este mundillo
-Ganache-cli. Para probar, necesitas una blockchain y ganache es una blockchain ethereum que corre en tu pc, y crea 10 usuarios con 100ETH cada uno
-Truffle. Es la herramienta que mas vas a usar.
Ahora ya esta. Puedes usar visual studio code para crear tu programa .sol, con el codigo en solidity.
Para probar, en un terminal ejecutas ganache-cli, para tener tu blockchain personal ejecutandose
En otro terminal del VS, ejecutas truffle compile, y ya esta el programa compilado.
Pero esto es lo que hacen los indios. Me han llegado a contratar para hacer auditorias de smart contract hechos por indios donde no habia ni un solo test. Debes recordar que los tests son la unica manera efectiva de interactuar con la blockchain cuando haces debug. Unmarketplace de los que yo vendo suele tener una media de 90 o 100 tests
Entonces en tu directorio "tests", creas un nuevo fichero para hacer los tests. Truffle usa internamente mocha si no recuerdo mal para hacer los tests.
Ahora lo que tienes que hacer es "truffle test", que ademas ya te compila y todo. Y el proceso es picar codigo en VS y luego truffle test, hasta que todo funcione.
Como siempre, no es tan facil. La EVM tiene un limite de 24k asi que tu contrato no puede tener mas de 24k. Eso solo vale para hacer cosas triviales asi que tendras que crear una libreria o varios smart contracts que interactuan entre si. Pero eso ya es algo avanzado.
Cuando tu programa ya funciona en local, es el momento de probar en testnet. Para ello debes hacer varias cosas:
1. Instalar la libreria hdwallet-provider
2. Crear un fichero secrets.json y ponerlo en git ignore, o usar env, o cualquier metodo que se te ocurra que mantenga privado ese fichero.
3. Añadir a ese fichero el mnemonic (las 12 palabras) de la cuenta que vayas a usar para publicar.
4. Crearte una cuenta gratuita en infura
5. Añadir el codigo de proyecto que da infura a secrets.json
6. Editar el fichero truffle-config.js para añadir la conexion a testnet usando tu mnemonic y la url de infura, junto con los datos de la red testnet que vayas a usar (ropsten, rinkeby, etc)
7. Ir a un faucet y conseguir tokens para tu cuenta
8. Crear un fichero de migracion (hay muchos tutoriales y es simplemente escribir nombre_de_smart_contract.deploy()
😉
9. Liquidar truffle migrate --network rinkeby --reset
Y tras un par de minutos ya estara tu proyecto en la testnet llamada rinkeby. Ahora puedes usar un programa javascript usando web3.js para interactuar con el.