找到归档 2022-09 的文章 3 篇.


MoveVM资源修改和销毁的原理

Posted on 2022-09-12 05:57:09 default

摘要:

在之前的文章中,我们分析了 Move 中资源的创建在 Move 虚拟机中的实现方式,这篇内容分析资源创建后的修改和销毁。

在 Move 中,当使用 move_to 为某个账户创建了一个资源之后,就可以将这个资源借用出来,并修改它。

例如下面的 Move 代码:

public fun set_value(addr: address, value: u64) acquires Counter {
    let counter = borrow_global_mut<Counter>(addr);
    counter.i = value;
}
阅读全文

Move中资源创建的原理

Posted on 2022-09-12 05:55:19 default

摘要:

Move 中的资源类型,我们都知道它其实就是 Move 中的一个自定义结构体类型,只不过我们在结构体上加了一些限制:

  1. 资源存储在帐户下。因此,只有在分配帐户后才会存在,并且只能通过该帐户访问。
  2. 一个帐户同一时刻只能容纳一个某类型的资源。
  3. 资源不能被复制,准确的说没有办法去复制资源。
  4. Resource 必需被使用,这意味着必须将新创建的 Resource move 到某个帐户下,从帐户移出的 Resource 必须被解构或存储在另一个帐户下。
阅读全文

Move虚拟机和字节码简要介绍

Posted on 2022-09-12 05:54:12 default

摘要:

下面的内容分为两部分,第一部分介绍了Move虚拟机的结构: 作为一个栈式虚拟机,它的操作数栈、调用栈。另外还介绍了Move虚拟机中,虚拟机提供了数据结构来支持函数调用和返回。

第二部分介绍了Move虚拟机中比较关键的字节码指令的作用。

阅读全文