Skip to main content

迈克尔逊语言的 Jupyter 内核

项目描述

迈克尔逊核

PyPI 版本 Docker 构建状态 made_with pytezos 粘合剂

迈克尔逊语言的 Jupyter 内核

迈克尔逊

特征

  • 带有运行时类型检查器的自定义解释器
  • 语法高亮
  • 自动完成Tab
  • 替换文档字符串Shift+Tab
  • 宏支持
  • 详细执行记录
  • 调试助手

如何安装

选项1:在线尝试!

由出色的 Binder 提供支持:https ://mybinder.org/v2/gh/baking-bad/michelson-kernel/binder?filepath=michelson_quickstart.ipynb

选项2:在docker中运行

  1. 从 dockerhub 获取最新镜像(仅在发布新版本时)
docker pull bakingbad/michelson-kernel
  1. 使用经过验证的 docker 镜像创建容器:
docker run --rm -it -p 127.0.0.1:8888:8888 -v $(pwd):/home/jupyter/notebooks bakingbad/michelson-kernel
  1. 在浏览器中打开容器输出中的链接
  2. 将笔记本保存在映射文件夹中,以免丢失它们

选项3:安装python包

  1. 需要 Python 3.5+。推荐的安装方法(特别是如果您计划使用多个版本)是pyenv。确保您已安装所有必要的数据包。在那之后:
pyenv install 3.7.0
pyenv local 3.7.0   # per folder
pyenv global 3.7.9  # per system
  1. 确保您安装了多个加密库(请参阅pytezos 文档):
sudo apt install libsodium-dev libsecp256k1-dev libgmp-dev
  1. 使用 pip 安装包
pip install michelson-kernel
  1. 安装 Jupyter
pip install jupyter
  1. 检查 Jupyter 现在是否支持 Michelson 内核
jupyter kernelspec list
  1. 运行 jupyter
jupyter notebook

打开命令输出中的链接,使用 Michelson 内核创建新笔记本。

选项 4:从源安装

  1. 按照“选项 3”中的步骤 1-2 确保您拥有 PyTezos 库所需的正确 Python 版本和数据包
  2. 确保安装了以下软件包:libssl-dev zlib1g-dev uuid-dev
  3. 获取源代码,构建和安装
git clone https://github.com/baking-bad/michelson-kernel
cd michelson-kernel
make
  1. 按照“选项 3”中的步骤 4-6

如何卸载

  1. 运行以下命令
jupyter kernelspec uninstall michelson -f
  1. 检查 Jupyter 是否不再支持 Michelson 内核
jupyter kernelspec list
  1. 卸载 Python 包
pip uninstall michelson-kernel

这个怎么运作

示例笔记本

位于当前存储库的单独分支中:
https ://github.com/baking-bad/michelson-kernel/tree/binder

帮手名单

这些指令不是 Michelson 原语,因此不能在 Jupyter 之外使用。
在 Jupyter 编辑器中,帮助程序以蓝色突出显示。

DUMP

如果有的话,返回带有值、类型和注释的整个堆栈。

DUMP n

n从堆栈中返回顶部项目。

PRINT "fmt"

将格式化的字符串打印到标准输出,允许引用任意堆栈元素:
PRINT "This is the top element {0}, and this is the second {1}"

DROP_ALL

清除堆栈。

EXPAND { code }

展开 Michelson 宏:
EXPAND { PAPAIIR }

INCLUDE path

从文件系统(绝对或相对路径)INCLUDE "test.tz"或从 Tezos 网络之一加载 Michelson 源INCLUDE "mainnet:KT1VG2WtYdSWz5E7chTeAdDPZNy2MpP8pTfL"。初始化parameterstoragecode部分。如果从网络加载,当前存储也被写入STORAGE变量,以后可以访问。

PATCH prim value

为上下文相关的 Michelson 指令中的 on 设置值:AMOUNT, BALANCE, NOW, SOURCE, SENDER, CHAIN_ID.

DEBUG bool

启用或禁用详细输出:DEBUG FalseDEBUG True

BIG_MAP_DIFF

获取堆栈顶部,在该元素中搜索临时big_map实例,并显示如果它是合约执行结束时 big_map_diff 会是什么样子。

BEGIN %entrypoint (param_expr) (storage_expr)

模拟合同执行开始。要求parameterstorage部分已初始化。此外,清除堆栈。
%entrypoint参数可以省略,%default将在这种情况下使用。
如果参数或存储中有任何临时 big_map 实例,此帮助程序也会分配。如果您之前已从网络加载它,
您可以使用STORAGE变量。storage_expr

COMMIT

模拟合约执行结束。需要一个Pair操作列表和堆栈顶部的有效存储。返回内部操作、新存储和 big_map_diff 的列表。

RESET

清除堆栈,删除所有 big_map 实例。

RESET "network"

和不带参数的版本一样,还要初始化NETWORKCHAIN_ID变量。
可用于设置真实网络上下文以访问区块链数据。

RUN %entrypoint (param_expr) (storage_expr)

需要code部分初始化。内部调用BEGIN,然后执行code,并以 . 结束COMMIT

查看文章和教程了解更多技术细节,也可以查看实现

接触

学分

  • 该项目由 Tezos 基金会支持
  • 来自 Tezos repo 的 Michelson 测试集用于确保解释器的可操作性
  • Nomadic Labs 的 Michelson 结构化文档用于内联帮助

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

michelson-kernel-0.1.6.tar.gz (14.6 kB 查看哈希

已上传 source