Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Edición de «
Solidity
»
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
{{Ficha de lenguaje de programación|nombre=Solidity|logo=Solidity logo.svg|tamaño_logo=80px|paradigma=|año=|diseñador=|developer=[[Gavin Wood]] y otros|última_versión=0.8.24|fecha_última_versión=25-01-2024|Influenciado por=[[JavaScript]], [[C++]], [[Python (programming language)|Python]], [[PowerShell]]|web={{URL|github.com/ethereum/solidity}}}}'''Solidity''' es un lenguaje de programación orientado a objetos para escribir [[Contrato inteligente|contratos inteligentes]].<ref>{{Cita web|url=https://www.huffpost.com/entry/ethereum-is-the-second-most-valuable-digital-currency_b_596bc5c7e4b022bb9372b2b2|título=Ethereum Is The Second Most Valuable Digital Currency, Behind Bitcoin|fechaacceso=2019-04-10|autor=Afshar|nombre=Vala|fecha=2017-07-17|sitioweb=HuffPost|idioma=en}}</ref> Se utiliza para implementar contratos inteligentes<ref name="finextra24Nov2016"> {{Cita noticia|fecha=2016-11-24|url=https://www.finextra.com/newsarticle/29813/sofe-berlin-swift-unveils-blockchain-proof-of-concept|título=SOFE Berlin: Swift unveils blockchain proof-of-concept|fechaacceso=2016-11-24|apellidos=|nombre=|periódico=|ubicación=|página=|número=}}</ref> en varias plataformas [[Cadena de bloques|blockchain]], la más destacada, [[Ethereum]] .{{Cita requerida|fecha=December 2019}} Fue desarrollado por Christian Reitwiessner, Alex Beregszaszi y varios de los principales excolaboradores de [[Ethereum]] para poder escribir contratos inteligentes en plataformas blockchain como Ethereum.<ref>{{Cita web|url=https://github.com/ethereum/solidity/graphs/contributors|título=List of contributors}}</ref> == Historia == Solidity fue inicialmente propuesto en agosto de 2014 por Gavin Wood. Más tarde, el lenguaje fue desarrollado por el equipo de Solidity de Ethereum Projects, dirigido por Christian Reitwiessner. Actualmente, Solidity es el principal lenguaje en Ethereum así como en otras blockchains privadas que compiten con Ethereum, como Monax y su [[Hyperledger]] Burrow blockchain, la cual utiliza Tendermint para el mecanismo de consenso. [[Society for Worldwide Interbank Financial Telecommunication|SWIFT]] ha desplegado una prueba de concepto que utiliza Solidity ejecutándose sobre Burrow. Un investigador de la [[Universidad Cornell|Universidad de Cornell]] declaró que Solidity fue parcialmente culpable del hackeo a [[The DAO (organization)|The DAO]] en 2016. Dijo: "esto en realidad no era un defecto o una explotación en el contrato de The DAO en sí: técnicamente, la Máquina Virtual Ethereum (EVM) estaba funcionando según lo previsto, pero Solidity estaba introduciendo fallos de seguridad en los contratos que no solo la comunidad pasó por alto, sino que también lo hicieron los propios diseñadores del lenguaje ".<ref name="wiredjune18th2016"> {{Cita noticia|nombre=Klint|apellidos=Finley|fecha=2016-06-18|url=https://www.wired.com/2016/06/50-million-hack-just-showed-dao-human/|título=A $50 MILLION HACK JUST SHOWED THAT THE DAO WAS ALL TOO HUMAN|fechaacceso=2017-02-18|periódico=|ubicación=|página=|número=}}</ref> == Descripción == Solidity es un [[Sistema de tipos|lenguaje de]] programación de [[Sistema de tipos|tipo estático]] diseñado para desarrollar contratos inteligentes que se ejecutan en la máquina virtual de ethereum, también conocida como EVM.<ref>{{Cita web|url=https://developer.ibm.com/patterns/loyalty-points-fabric-evm/|título=Hyperledger Fabric Tutorial - Create a blockchain app for loyalty points|fechaacceso=2019-04-10|sitioweb=IBM Developer|idioma=en-US}}</ref> Según lo especificado por Wood, está diseñado en torno a la sintaxis [[ECMAScript]] para que sea familiar para los desarrolladores web existentes;{{Cita requerida|fecha=April 2018}} la diferencia de ECMAScript, es que tiene tipos de retorno de tipo estático y variable. En comparación con otros lenguajes focalizados en EVM de la época, como Serpent y Mutan, Solidity contenía una serie de diferencias importantes. Soportaba variables miembro complejas para los contratos, incluyendo asignaciones jerárquicas arbitrarias y [[Estructura de datos|estructuras de datos]] . Los contratos admiten [[Herencia (informática)|herencia]], incluyendo [[herencia múltiple]] [[Linealización de superclase C3]] . Además tiene una [[Interfaz binaria de aplicaciones|interfaz binaria de aplicación]] (ABI) que facilita múltiples funciones de [[Tipo seguro|seguridad de tipos]] dentro de un solo contrato (más tarde soportada por Serpent). También incluye un sistema de documentación para especificar una descripción centrada en el usuario de las ramificaciones de una llamada a un método, conocido como "Especificación del lenguaje natural".<ref>{{Cita web|url=https://github.com/ethereum/wiki/wiki/Ethereum-Natural-Specification-Format|título=Ethereum Natural Specification Format|autor=ethereum|sitioweb=GitHub}}</ref> Ejemplo de un programa de Solidity:<ref>{{Cita web|url=https://solidity.readthedocs.io/en/v0.5.14/introduction-to-smart-contracts.html#subcurrency-example|title=Subcurrency Example from the Solidity documentation}}</ref> <syntaxhighlight lang="solidity"> pragma solidity >= 0.7.0 <0.8.0; contract Coin { // The keyword "public" makes variables // accessible from other contracts address public minter; mapping (address => uint) public balances; // Events allow clients to react to specific // contract changes you declare event Sent (address from, address to, uint amount); // Constructor code is only run when the contract // is created constructor() public { minter = msg.sender; } // Sends an amount of newly created coins to an address // Can only be called by the contract creator function mint(address receiver, uint amount) public { require(msg.sender == minter); require(amount < 1e60); balances[receiver] += amount; } // Sends an amount of existing coins // from any caller to an address function send(address receiver, uint amount) public { require(amount <= balances[msg.sender], "Insufficient balance."); balances[msg.sender] -= amount; balances[receiver] += amount; emit Sent (msg.sender, receiver, amount); } } </syntaxhighlight> == Plataformas de desarrollo disponibles == * [[Microsoft Visual Studio]] {{cr}} * [[Visual Studio Code|Microsoft Visual Studio Code]]<ref>{{Cita web|url=https://docs.microsoft.com/en-us/azure/blockchain/service/connect-vscode|título=Use Visual Studio Code to connect to Azure Blockchain Service - Azure Blockchain|fechaacceso=2020-03-27|autor=PatAltimore|sitioweb=docs.microsoft.com|idioma=en-us}}</ref> * Tendermint en [[Microsoft Azure]] {{cr}} * ErisDB de [[Amazon Web Services|AWS]] {{cr}} * Remix de [[Ethereum]] {{cr}} == Plataformas Blockchain == Solidity está disponible en: * [[Ethereum]] * [[Ethereum Classic]] * Tendermint y ErisDB (una versión de Tendermint){{Cita requerida|fecha=May 2019}} * [[Counterparty]] (que se ejecuta en [[Bitcoin]] ){{Cita requerida|fecha=May 2019}} *Tron == Referencias == {{Listaref}} {{Control de autoridades}} [[Categoría:Descentralización]] [[Categoría:Ethereum]]
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Buscar
Buscar
Edición de «
Solidity
»
Añadir idiomas
Añadir tema