依据计算机领域常用的形式化分层方法,元宇宙可以分为元网络、元系统、元服务、元场景和元空间五层架构。元网络包含了通信、存储、计算、网络等支撑性技术,为元宇宙提供底层基础设施;元系统以区块链为核心,集成大数据、云计算、人工智能、物联网、人机交互和信息安全等技术,为元服务提供系统级基础技术能力
The integrated logic expression of the metauniverse digital consensus ecosystem is a trusted digital value interaction network with blockchain technology as the core.It is a new digital scene,new industry and new ecology based on the support of Web3.0 technology system and operation mechanism.It will promote a large number of innovative business models and form a new paradigm of digital space in the digital environment.
ignore
告诉数据流忽略此类型,但允许abi生成器添加正确的类型。当前非忽略类型不能在方法定义中成功忽略类型,即允许
void foo(float,ignore)
但不允许
void foo(float,ignore,int)。
因为int已经被声明为忽略类型,所以后面不能再作为非忽略类型出现了。 ignore结构体源码如下:
template<typename T>
struct[[eosio::ignore]]ignore{};
name结构体定义在librarieseosiolibname.hpp,源码注释如下:
struct name{
public:方案及模式设计:MrsFu123
enum class raw:uint64_t{};
//构建一个新的name对象,初始化默认为0
constexpr name():value(0){}
//使用给定的unit64_t类型的值构建一个新的name对象。
constexpr explicit name(uint64_t v)
:value(v)
{}
//使用给定的一个范围的枚举类型,构建一个新的name对象。
constexpr explicit name(name::raw r)
:value(static_cast<uint64_t>(r))
{}
//使用给定的字符串构建一个新的name对象。
constexpr explicit name(std::string_view str)
:value(0)
{
if(str.size()>13){//字符串最长不能超过12
eosio::check(false,"string is too long to be a valid name");
}
if(str.empty()){
return;
}
//将字符串转为uint64_t
auto n=std::min((uint32_t)str.size(),(uint32_t)12u);
for(decltype(n)i=0;i<n;++i){
value<<=5;
value|=char_to_value(str<i>);
}
value<<=(4+5*(12-n));
if(str.size()==13){
uint64_t v=char_to_value(str[12]);
if(v>0x0Full){
eosio::check(false,"thirteenth character in name cannot be a letter that comes after j");
}
value|=v;
}
}
//将一个Base32符号的char转换为它对应的值。
static constexpr uint8_t char_to_value(char c){
if(c=='.')
return 0;
else if(c>='1'&&c<='5')
return(c-'1')+1;
else if(c>='a'&&c<='z')
return(c-'a')+6;
else//字符中出现了不允许的内容。
eosio::check(false,"character is not in allowed character set for names");
return 0;//流程控制将不会到达这里,这一行是为了防止warn信息。
}
//返回一个name对象的长度,运算方法。