{"id":4828,"date":"2023-05-11T08:36:02","date_gmt":"2023-05-11T08:36:02","guid":{"rendered":"https:\/\/www.bitnovo.com\/blog\/?p=4828"},"modified":"2022-04-29T11:47:56","modified_gmt":"2022-04-29T11:47:56","slug":"que-es-un-op_code-guia-rapida-para-tu-blockchain","status":"publish","type":"post","link":"https:\/\/www.bitnovo.com\/blog\/que-es-un-op_code-guia-rapida-para-tu-blockchain","title":{"rendered":"\u00bfQu\u00e9 es un OP_CODE? Gu\u00eda r\u00e1pida para tu Blockchain"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Alternar tabla de contenidos\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #ffffff;color:#ffffff\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #ffffff;color:#ffffff\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.bitnovo.com\/blog\/que-es-un-op_code-guia-rapida-para-tu-blockchain\/#%c2%bfque_es_op_code\" >\u00bfQu\u00e9 es OP_CODE?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.bitnovo.com\/blog\/que-es-un-op_code-guia-rapida-para-tu-blockchain\/#%c2%bfcomo_funciona_un_op_code_hablemos_de_lenguajes_de_maquina_y_operandos\" >\u00bfC\u00f3mo funciona un OP_CODE? Hablemos de lenguajes de m\u00e1quina y operandos.<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.bitnovo.com\/blog\/que-es-un-op_code-guia-rapida-para-tu-blockchain\/#los_codigos_de_operacion_de_criptos_como_bitcoin\" >Los c\u00f3digos de operaci\u00f3n de criptos como Bitcoin<\/a><\/li><\/ul><\/nav><\/div>\n<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tiempo de lectura:<\/span> <span class=\"rt-time\"> 4<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span><p>En la vida real, usualmente, para evitar procrastinar y llegar a nuestro ideal de a\u00f1o nuevo, que es ser m\u00e1s productivos que en a\u00f1os anteriores, creamos un plan completo con horarios y actividades a realizar.<\/p>\n<p>Eventualmente, lo incre\u00edble est\u00e1 en la voluntad de iniciar a realizarlo. Pero cuando llega ese d\u00eda en donde nos levantamos diciendo \u00abvenga, que hoy s\u00ed podemos\u00bb es en donde todo comienza a ser una realidad, aunque pasajera, efectiva, dado que nos lleva a actuar. Esencialmente,\u00a0<strong>as\u00ed funcionan los OP_CODE o, tambi\u00e9n llamados, c\u00f3digos operativos o c\u00f3digos de operaci\u00f3n<\/strong>.<\/p>\n<p>\u00bfQuieres saber c\u00f3mo funcionan y qu\u00e9 los hacen tan imprescindibles en el universo de las criptos? \u00a1Est\u00e1s en el mejor sitio! Alista tu equipaje, que hoy haremos un viaje por el mundo de la programaci\u00f3n.<\/p>\n<div class=\"is-divider divider clearfix\"><\/div>\n<div class=\"is-divider divider clearfix\"><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%c2%bfque_es_op_code\"><\/span>\u00bfQu\u00e9 es OP_CODE?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Iniciando por \u201cqu\u00e9 es un OP_CODE\u201d, mejor llamado operation code o c\u00f3digos de operaci\u00f3n,\u00a0<strong>se puede definir como una instrucci\u00f3n que especifica la operaci\u00f3n que deben realizar las m\u00e1quinas virtuales.<\/strong><\/p>\n<p>Esta orden se genera en lenguaje ensamblador o lenguaje de m\u00e1quina que lo especifica o traduce a una colecci\u00f3n de d\u00edgitos binarios o bits (0 y 1).<\/p>\n<p><strong>Dentro del mundo de las criptos<\/strong>, facilita el proceso de programaci\u00f3n dentro de una blockchain, ya sea en la creaci\u00f3n de estructuras de programaci\u00f3n avanzadas o los famosos smart-contracts que son revisados y ejecutados por los diferentes nodos de una blockchain como\u00a0<a href=\"https:\/\/www.bitnovo.com\/blog\/que-es-y-como-funciona-ethereum-eth\/\"><strong>Ethereum<\/strong><\/a>\u00a0o\u00a0<strong><a href=\"https:\/\/www.bitnovo.com\/blog\/que-es-bitcoin\/\">Bitcoin<\/a><\/strong>.<\/p>\n<p>Tal y como se hab\u00eda mencionado antes, de manera m\u00e1s sencilla,\u00a0<strong>los OP_CODE son una llamada a la acci\u00f3n.<\/strong><\/p>\n<p>En la situaci\u00f3n de nuestros prop\u00f3sitos de a\u00f1o nuevo, ser\u00eda nuestra motivaci\u00f3n. Esa que nos hace, al menos en ese d\u00eda, levantarnos e ir al gimnasio o comenzar a trabajar.<\/p>\n<p>Precisamente, esto es lo que ser\u00eda un c\u00f3digo de operaci\u00f3n para un sistema o una computadora.<\/p>\n<p>Sin embargo, antes de saltarnos a temas m\u00e1s de nuestra materia y comprender c\u00f3mo funciona, es importante reconocer que\u00a0<strong>estos OP_CODE funcionan tanto para hardware como para software.<\/strong>\u00a0No obstante, sus formatos se establecen de forma distinta.<\/p>\n<ul>\n<li><strong>En la parte del hardware,<\/strong>\u00a0los c\u00f3digos de operaci\u00f3n se establecen y funcionan\u00a0 de acuerdo a la\u00a0<strong>arquitectura de conjunto de instrucciones (ISA)<\/strong>, la cual define los tipos de datos que son admitidos, los registros, el soporte para administrar la memoria principal u otros elementos como la consistencia de la memoria o el modelo de input\/output.\u00a0Un ejemplo de un ISA es la familia \u201cx86\u201d de los procesadores de Intel o AMD, en donde se incluyen los procesadores terminados por \u201c86\u201d como los 80186, 80268, 80286, entre otros, cuya funci\u00f3n es direccionar m\u00e1s memoria de la que puede cubrir una direcci\u00f3n simple de 16 bits.<\/li>\n<li><strong>En el caso del software,<\/strong>\u00a0los OP_CODE tambi\u00e9n son llamados c\u00f3digos de bytes o byte codes, los cuales est\u00e1n destinados para que un software los interprete, en vez de un dispositivo de hardware y, por ello, emplean datos y operaciones de un nivel m\u00e1s complejo que los de hardware, pero se construyen en l\u00edneas similares.\u00a0Un ejemplo de este tipo de c\u00f3digos se pueden encontrar en los java class file que son interpretados por un Java Virtual Machine (JVM).<\/li>\n<\/ul>\n<div class=\"is-divider divider clearfix\"><\/div>\n<div class=\"is-divider divider clearfix\"><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%c2%bfcomo_funciona_un_op_code_hablemos_de_lenguajes_de_maquina_y_operandos\"><\/span>\u00bfC\u00f3mo funciona un OP_CODE? Hablemos de lenguajes de m\u00e1quina y operandos.<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Dentro de su mecanismo de funcionamiento, se halla impl\u00edcita la forma en la que la orden se presenta o, dicho de otra forma, el lenguaje que utiliza.<\/p>\n<p>Para estos fines,\u00a0<strong>el lenguaje de programaci\u00f3n<\/strong>\u00a0es una herramienta imprescindible y se consolida como la principal opci\u00f3n para la presentaci\u00f3n de los datos y la operatividad apropiada de este tipo de procedimientos.<\/p>\n<p>Por esto, es com\u00fan que los c\u00f3digos de operaci\u00f3n est\u00e9n en ingl\u00e9s y, en consecuencia, para su procesamiento, hagan uso de valores binarios.<\/p>\n<p>A partir de all\u00ed, el opcode identifica la operaci\u00f3n que debe realizar y el conjunto de instrucciones que necesita para tal proceso.<\/p>\n<p>En esta parte, tambi\u00e9n se encuentra otro componente importante que son\u00a0<strong>los operandos.<\/strong><\/p>\n<p>Para explicarlo, primero\u00a0<strong>partamos de un ejemplo<\/strong>: estamos en una fiesta y nos dieron un trozo de bizcocho de dos niveles: si el opcode o c\u00f3digo de operaci\u00f3n es la porci\u00f3n correspondiente al primer nivel de la torta, los operandos ser\u00edan el otro nivel, completando, de esta forma, un maravilloso platillo.<\/p>\n<p>Por esta raz\u00f3n, los operandos y los OP_CODE son hermanos mellizos inseparables que, en unas circunstancias m\u00e1s que en otras, necesitan el uno del otro para llevar a cabo una funci\u00f3n, dado que ambos son porciones de una instrucci\u00f3n.<\/p>\n<p>Por un lado, comprendemos que los\u00a0<strong>OP_CODE pueden traducirse en actos o hechos observables<\/strong>.\u00a0<strong>El operando viene siendo las variables que est\u00e1n involucradas en este proceso<\/strong>\u00a0o, en otros t\u00e9rminos, los valores o sujetos incluidos.<\/p>\n<p>Si tuvi\u00e9semos \u00e1nimos de hacer paella,\u00a0<strong>el c\u00f3digo de operaci\u00f3n ser\u00eda las t\u00e9cnicas y procedimientos<\/strong>\u00a0que deben llevarse a cabo para c\u00f3mo cocinar el arroz, la pechuga, la costilla de puerco, entre otras; y\u00a0<strong>el operando ser\u00eda el cocinero<\/strong>, quien se encarga de conseguir todos los ingredientes y tenerlos preparados para la elaboraci\u00f3n de la receta.<\/p>\n<p>En consecuencia,\u00a0<strong>el c\u00f3digo de operaci\u00f3n ser\u00eda un verbo, mientras que el operando el sujeto.<\/strong><\/p>\n<p>Por este motivo, podemos entender dos cosas: si deseamos que se ejecuten las acciones que pretendidas dentro de una blockchain, es necesario utilizar los OP_CODE en un lenguaje adecuado para que pueda ser procesado en su interior por la CPU u otros hardwares\/softwares y definir los operandos (sea registros, direcciones, etiquetas, valores, etc\u00e9tera) con los cuales la instrucci\u00f3n operar\u00e1.<\/p>\n<div class=\"is-divider divider clearfix\"><\/div>\n<div class=\"is-divider divider clearfix\"><\/div>\n<h2><span class=\"ez-toc-section\" id=\"los_codigos_de_operacion_de_criptos_como_bitcoin\"><\/span>Los c\u00f3digos de operaci\u00f3n de criptos como Bitcoin<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><strong>Todas las criptos hacen uso de opcode (operation code)<\/strong>\u00a0o c\u00f3digos de operaci\u00f3n, lo que posibilita que se manejen las transacciones u operaciones dentro de su sistema.<\/p>\n<p>Un ejemplo claro de ello, es presentado por Bitcoin. Actualmente, \u201cscript\u201d es el lenguaje que se utiliza para bloquear y desbloquear las transacciones.<\/p>\n<p>Para este lenguaje, hay alrededor de 10 tipos de c\u00f3digos especiales para diferentes funciones, tales como constantes (the current), control de flujo, operaciones de pila y de empalmes, l\u00f3gica de bits, operaciones num\u00e9ricas, de criptos, bloqueo de tiempo, pseudoc\u00f3digos (utilizados para ajustar las transacciones) y c\u00f3digos reservados.<\/p>\n<p>Concluyamos este viaje, observando unos cuantos c\u00f3digos dentro de los distintos tipos de c\u00f3digos de operaci\u00f3n que podemos encontrar en el script de Bitcoin:<\/p>\n<div id=\"image_934368132\" class=\"img has-hover x md-x lg-x y md-y lg-y\">\n<div class=\"img-inner dark\"><img fetchpriority=\"high\" decoding=\"async\" class=\"attachment-large size-large lazyloaded\" src=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/06\/Que-es-un-OP_CODE.jpg\" sizes=\"(max-width: 768px) 100vw, 768px\" srcset=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/06\/Que-es-un-OP_CODE.jpg 768w, https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/06\/Que-es-un-OP_CODE-300x205.jpg 300w\" alt=\"Qu\u00e9 es un OP CODE\" width=\"768\" height=\"526\" data-srcset=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/06\/Que-es-un-OP_CODE.jpg 768w, https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/06\/Que-es-un-OP_CODE-300x205.jpg 300w\" data-src=\"https:\/\/www.bitnovo.com\/blog\/wp-content\/uploads\/2021\/06\/Que-es-un-OP_CODE.jpg\" data-sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/div>\n<\/div>\n<p>Hasta aqu\u00ed lleg\u00f3 nuestra traves\u00eda. Si est\u00e1s interesado en leer m\u00e1s art\u00edculos asociados con las novedades del universo de las criptos y sus conceptos b\u00e1sicos, puedes cliquear encima de las tem\u00e1ticas relacionadas de abajo.<\/p>\n<p>Si quieres sumarte a esta fascinante aventura de las criptodivisas, puedes dirigirte a\u00a0<a href=\"https:\/\/www.bitnovo.com\/\"><strong>nuestra p\u00e1gina principal<\/strong><\/a>\u00a0y consultar nuestros servicios. Siempre estaremos dispuestos a resolver tus dudas y apoyarte en lo que necesites. \u00a1Hasta la pr\u00f3xima!<\/p>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tiempo de lectura:<\/span> <span class=\"rt-time\"> 4<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>En la vida real, usualmente, para evitar procrastinar y llegar a nuestro ideal de a\u00f1o nuevo, que es ser m\u00e1s productivos que en a\u00f1os anteriores, creamos un plan completo con horarios y actividades a realizar. Eventualmente, lo incre\u00edble est\u00e1 en la voluntad de iniciar a realizarlo. Pero cuando llega ese d\u00eda en donde nos levantamos [&hellip;]<\/p>\n","protected":false},"author":22,"featured_media":4829,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[146],"tags":[],"class_list":["post-4828","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blockchain"],"_links":{"self":[{"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/posts\/4828","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/users\/22"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/comments?post=4828"}],"version-history":[{"count":0,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/posts\/4828\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/media\/4829"}],"wp:attachment":[{"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/media?parent=4828"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/categories?post=4828"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bitnovo.com\/blog\/wp-json\/wp\/v2\/tags?post=4828"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}