Cómo instalar geth disasm y otras herramientas de desarrollo

El desensamblador geth parece una muy buena herramienta, si puede hacer cosas como esta:

To disassemble, run echo 6005600401 | disasm, which produces:

0      PUSH1  => 05
2      PUSH1  => 04
4      ADD

Sin embargo, no pude encontrarlo, probé la solución aquí y me encontré con este error:

ingrese la descripción de la imagen aquí

¿Cómo podemos instalar las herramientas de desarrollo como disasm?

No es lo mismo, pero encontré esto útil github.com/Arachnid/evmdis .
Sí, lo que sugiere @Ismael puede ser más fácil que lo que puse en mi respuesta (actualizada). La documentación oficial parece un poco incompleta con respecto a lo que sucedió con el paquete de herramientas...

Respuestas (2)

Necesita el paquete "Geth & Tools 1.7.0" de la página oficial de Descargas . Debería poder simplemente descomprimir el paquete y ejecutar los archivos binarios directamente.

Sin embargo, debe tenerse en cuenta que la disasmherramienta ya no existe por sí misma: se integró con la evmherramienta principal en la confirmación #3729 . Lo que significa que tendrá que ejecutar la evmherramienta y pasar la disasmbandera como argumento.


La otra opción es compilar la herramienta usted mismo usando el disasm.goarchivo y cualquier otro paquete de Go que se requiera. Este es el enfoque utilizado en la respuesta anterior a la que se ha vinculado, pero deberá comprender cómo reunir todo para la compilación. El archivo principal ha cambiado de ubicación a lo siguiente:

github.com/ethereum/go-ethereum/blob/master/cmd/evm/disasm.go
así que lo encontré en /Users/s.matthew.english/go/src/github.com/ethereum/go-ethereum/cmd/evm/disasm.go, pero cuando ejecuté el comando ./disasm.go, recibí el error zsh: permission denied: ./disasm.goy luegosudo: ./disasm.go: command not found
Hola. Ese es solo el archivo fuente de Go: necesita compilarlo para que funcione. (Eso es lo que parece haber hecho el usuario en la otra pregunta). He investigado más y descubrí que la disasmherramienta ya no existe como una herramienta independiente como lo hacía antes. He actualizado mi respuesta...

Ha sido subsumido por la evmherramienta, pero puede llamarlo así ( por ejemplo ):

echo "6005600401" >> tst && evm disasm tst   
6005600401
000000: PUSH1 0x05
000002: PUSH1 0x04
000004: ADD