历史分析:从法国古典园林到西方现代园林
摘要:本文通过对法国古典花园及相关西方现代园林的研究 ,阐述总结了古典园林的特点,并结合相关案例,归纳并探讨西方现代园林与古典园林之间的关系。重点从营造手法方面分析与阐述了西方现代园林对古典园林的继承与发展,启迪现代园林的创作与实践。 法国的传统园林都在世界园林史上占据非常重要的地位,深入探讨西方景观园林的营造思想和手法,总结法国古典景观园林的景观特色、造园思想与造园要素,结合法国最优秀现代园林进行对比分析,将有助于解读西方现代园林对古典园林的继承与发展。一、法国古典园林的产生背景与特点17世纪下半叶,路易十四彻底巩固了国家的统一和封建专制制度,把绝对君权推向顶峰。这一时期是法国科学和哲学兴盛的时代,也是古典主义文艺思潮席卷法国和欧洲的时代。当时的政治制度、美学哲学思想及西方古典主义绘画的特点,都对古典主义造园艺术产生了深远的影响。 古典园林的造园思想与景观特色 西方园林营造思想是一种通过控制自然、征服自然来实现自然美的自然美学思想。强调“驾驭自然,改造自然,强迫自然接受均衡的法则”。法国古典园林的景观形态所体现的基本上是一种建筑美,诉诸简明、规则的几何图案,人们常将法国式园林比...
How can new data technology enhance rural revitalization?
Background: With the advent of the fourth industrial revolution, smart terminals such as mobile phones have become popular. The development of advanced tracking technologies has made it possible to collect human oriented, full-coverage and dynamic data (Long et al. 2016)for studying differences in human spatial-temporal behaviors ,which is promising in built environment design. Along with urban areas, there are tens of thousands of villages which are entering the era of big data. The protecti...
Solv Protocol :金融NFT的底层标准创新
背景知识:NFT底层协议标准说明与ERC20协议相似的,NFT有三种底层协议标准——ERC-721,ERC-1155,ERC-998。 1、ERC-20:即FT;其主要优势在于可计算,但是缺乏描述能力,如果想要描述100类token,必须要编写100个不同的ERC20合约,发布100种不同的ERC20 tokens。每个token仅有数量属性。 2、ERC-721:每个NFT都是独一无二、没有同类、不可拆分。——不可计算 描述能力强,可以通过创建一个ERC721合约,然后铸造100个不同的NFT,每个NFT/token都有一个Token ID。案例:加密猫 3、ERC-1155: 描述能力强,可以通过创建一个ERC1155合约,然后铸造100个不同的Token ID,每个ID都是一个类别,**一个类别中的token没有任何区别,有数量属性。**这里的ID和ERC721对比来看的区别是:ID不再是某个物品,而是一个类别。 案例:游戏中的一类道具:ERC1155可以满足不同场景下的灵活需求,比如同时转账多数量的多类别资产,也可以转账多数量的同一类别资产,大大提高了转账的快捷方便程度。...
**对象。**账户是一个对象,它包含地址、余额、nonce、并且存储了状态和代码。账户可以是合约账户或外部账户(External Owned Account)
**变量。**两种变量,状态变量和内存变量。
在合约内部、函数外部声明的变量都是状态变量;状态变量存储合约的当前值,它们存储在区块链中。
函数内声明的变量是内存变量。只在函数执行时可用,类比传统计算机的内存调用数据——一些函数参数的存储。内存变量只能在函数内部执行,且仅在函数调用时可用。
Solidity变量的数据及其存储位置
Storage (存储)
Memory(内存)
Calldata(调用参数)
当输入一笔交易,Transaction会转换成一个Message对象,传入EVM执行。如果是一笔普通转账交易,那么直接修改StateDB中对应的账户余额即可。如果是智能合约的创建或者调用,则需要通过EVM中的解释器(interperter)加载和执行字节码,执行过程中可能会查询或者修改StateDB。
让我们来仔细观察这张图片:
EVM内部分为:EVM World stateDB;Interpreter解释器、

EVM World State,系统状态就是以太坊整个网络中所有账户的状态,它是一个merkle patricia trie结构:

**函数。**函数机制是为了从【状态变量】读取值和向【状态变量】写入值;
事件(event) 事件是从合约中触发的,任何对它们感兴趣的人都可以捕获它们并响应执行代码。合约中声明的事件在全域内有效,并且被合约中的函数所调用。使用event关键字声明一个事件,后跟一个标识符和参数列表并以分号结尾;
限定符。去修饰【变量】与【函数】,比如:
//^1.1.1 表示指定主版本号下所有更新的版本,如1.2.2,不匹配2.0.1
// >= 表示大于等于该版本号
//1.0.0-2.0.0 表示版本号在这个范围之间的版本号(包含两端)
//public 公有的,任何人可以调用
//private 私有,只能在声明的合约内部调用
//external 仅合约外部可以调用,合约内部需要使用this来调用
//view/constant 函数会读取但是不会修改任何状态
//pure 函数不使用任何状态变量
//internal 默认情况下,如果没有指定任何内容,则【状态变量】具有internal限定符。意味这个变量只能在当前的【合约函数】内部和任何继承它们的合约中使用。这些变量不能被外部访问修改,但是可以查看。
......
pragma solidity ^0.1.1
contract XXX {
string say="hello world!"
}
在Remix或者ChainIDE上写代码,会自动匹配相应的编译器
编译(Compiling)是将高级编程语言(如Solidity)编写的代码转换为较低级语言(如以太坊虚拟机字节码);
部署:部署合约(合约ABI+合约字节码)到EVM虚拟机上
ABI,Application Binary Interface:应用程序二进制接口,即合约的接口说明。合约代码被编译后,它对应的ABI也就确定了。
字节码是为虚拟机的高效执行而设计的抽象指令集。以数字格式表示,人类不可读。虚拟机上执行的是字节码Bytecode。
EVM,Ethereum Virtual Machine,以太坊虚拟机,是基于栈的虚拟机,用于执行字节码。在以太坊中,其执行模型指定了在给定一系列字节码指令和一小组环境数据的情况下如何改变系统状态。
Gas收费:其中一个字,有32个字节,每个字节8位,一个字有256位。gas price单位是Gwei;每占用一个字节,消耗Gas limit;执行过程中的gas limit,即为运行过程中操作所占用的字节消耗的算力。
每笔交易都被要求包括一个gas limit(也可被称为startGas)和一个愿为每个gas支付的单位价格。Tx交易费 = gas Used (该交易消耗的总gas数量)* gasPrice(该交易中单位gas的价格)。矿工可以有选择的打包这些交易并收取这些费用。
单个交易的gas limit值,代表了这个交易的执行最多被允许使用的gas数量。
如果实际需要使用的gas数量(gas used)≤ gas limit,那么这个交易会被处理,且根据交易字节长度计算实际花费,从gas limit里面扣除gas used给矿工,剩余gas退还给发起交易者。反之,如果gas used>gas limit,则交易失败且所有操作被复原,交易费全部被矿工收取。
gas price的计量单位为gwei,1 gwei = 10^9 wei = 10^(-9) ETH)由交易发起人设定,以争取尽早被矿工打包。
区块gas limit是单个区块允许的最多gas总量。假设有5笔交易的gas limit分别是10、20、30、40和50.如果区块gas limit是100,那么前4笔交易就能被成功打包进入这个区块。矿工有权决定将哪些交易打包入区块。目前区块的gas limit是 4,712,357 gas,数据来自于ethstats.net,这表示着大约224笔转账交易(gas limit为21000)可以被塞进一个区块(区块时间大约在15-20秒间波动)。
https://docs.alchemy.com/alchemy/
Alchemy 是一个 Web3 开发者平台,专注于简化区块链开发。构建了一套开发人员工具、API集和卓越的节点基础设施,以无缝构建和运行区块链应用程序。
API集合包括enhanced API和chain API;Ethereum API 允许【应用程序】连接到作为以太坊区块链一部分的【以太坊节点】。开发人员可以利用 API 提供的endpoints与链上数据交互,并将不同类型的交易发送到网络。API 遵循 JSON-RPC 标准。JSON-RPC 是一种无状态、轻量级的远程过程调用 (RPC) 协议,通常在与以太坊交互时使用。
使用方法:申请一个 API 密钥;并且得到一串URL
const axios=require("axios")
const data={
"jsonrpc":"2.0"
"method":"eth_blockNumber",
"params":[],
"id":0
}
const config={
method:"post"
url:"https//eth-mainnet.ALCHEM",
Headers:{
"Content-Type":"application/json"
}
data:data
}
**对象。**账户是一个对象,它包含地址、余额、nonce、并且存储了状态和代码。账户可以是合约账户或外部账户(External Owned Account)
**变量。**两种变量,状态变量和内存变量。
在合约内部、函数外部声明的变量都是状态变量;状态变量存储合约的当前值,它们存储在区块链中。
函数内声明的变量是内存变量。只在函数执行时可用,类比传统计算机的内存调用数据——一些函数参数的存储。内存变量只能在函数内部执行,且仅在函数调用时可用。
Solidity变量的数据及其存储位置
Storage (存储)
Memory(内存)
Calldata(调用参数)
当输入一笔交易,Transaction会转换成一个Message对象,传入EVM执行。如果是一笔普通转账交易,那么直接修改StateDB中对应的账户余额即可。如果是智能合约的创建或者调用,则需要通过EVM中的解释器(interperter)加载和执行字节码,执行过程中可能会查询或者修改StateDB。
让我们来仔细观察这张图片:
EVM内部分为:EVM World stateDB;Interpreter解释器、

EVM World State,系统状态就是以太坊整个网络中所有账户的状态,它是一个merkle patricia trie结构:

**函数。**函数机制是为了从【状态变量】读取值和向【状态变量】写入值;
事件(event) 事件是从合约中触发的,任何对它们感兴趣的人都可以捕获它们并响应执行代码。合约中声明的事件在全域内有效,并且被合约中的函数所调用。使用event关键字声明一个事件,后跟一个标识符和参数列表并以分号结尾;
限定符。去修饰【变量】与【函数】,比如:
//^1.1.1 表示指定主版本号下所有更新的版本,如1.2.2,不匹配2.0.1
// >= 表示大于等于该版本号
//1.0.0-2.0.0 表示版本号在这个范围之间的版本号(包含两端)
//public 公有的,任何人可以调用
//private 私有,只能在声明的合约内部调用
//external 仅合约外部可以调用,合约内部需要使用this来调用
//view/constant 函数会读取但是不会修改任何状态
//pure 函数不使用任何状态变量
//internal 默认情况下,如果没有指定任何内容,则【状态变量】具有internal限定符。意味这个变量只能在当前的【合约函数】内部和任何继承它们的合约中使用。这些变量不能被外部访问修改,但是可以查看。
......
pragma solidity ^0.1.1
contract XXX {
string say="hello world!"
}
在Remix或者ChainIDE上写代码,会自动匹配相应的编译器
编译(Compiling)是将高级编程语言(如Solidity)编写的代码转换为较低级语言(如以太坊虚拟机字节码);
部署:部署合约(合约ABI+合约字节码)到EVM虚拟机上
ABI,Application Binary Interface:应用程序二进制接口,即合约的接口说明。合约代码被编译后,它对应的ABI也就确定了。
字节码是为虚拟机的高效执行而设计的抽象指令集。以数字格式表示,人类不可读。虚拟机上执行的是字节码Bytecode。
EVM,Ethereum Virtual Machine,以太坊虚拟机,是基于栈的虚拟机,用于执行字节码。在以太坊中,其执行模型指定了在给定一系列字节码指令和一小组环境数据的情况下如何改变系统状态。
Gas收费:其中一个字,有32个字节,每个字节8位,一个字有256位。gas price单位是Gwei;每占用一个字节,消耗Gas limit;执行过程中的gas limit,即为运行过程中操作所占用的字节消耗的算力。
每笔交易都被要求包括一个gas limit(也可被称为startGas)和一个愿为每个gas支付的单位价格。Tx交易费 = gas Used (该交易消耗的总gas数量)* gasPrice(该交易中单位gas的价格)。矿工可以有选择的打包这些交易并收取这些费用。
单个交易的gas limit值,代表了这个交易的执行最多被允许使用的gas数量。
如果实际需要使用的gas数量(gas used)≤ gas limit,那么这个交易会被处理,且根据交易字节长度计算实际花费,从gas limit里面扣除gas used给矿工,剩余gas退还给发起交易者。反之,如果gas used>gas limit,则交易失败且所有操作被复原,交易费全部被矿工收取。
gas price的计量单位为gwei,1 gwei = 10^9 wei = 10^(-9) ETH)由交易发起人设定,以争取尽早被矿工打包。
区块gas limit是单个区块允许的最多gas总量。假设有5笔交易的gas limit分别是10、20、30、40和50.如果区块gas limit是100,那么前4笔交易就能被成功打包进入这个区块。矿工有权决定将哪些交易打包入区块。目前区块的gas limit是 4,712,357 gas,数据来自于ethstats.net,这表示着大约224笔转账交易(gas limit为21000)可以被塞进一个区块(区块时间大约在15-20秒间波动)。
https://docs.alchemy.com/alchemy/
Alchemy 是一个 Web3 开发者平台,专注于简化区块链开发。构建了一套开发人员工具、API集和卓越的节点基础设施,以无缝构建和运行区块链应用程序。
API集合包括enhanced API和chain API;Ethereum API 允许【应用程序】连接到作为以太坊区块链一部分的【以太坊节点】。开发人员可以利用 API 提供的endpoints与链上数据交互,并将不同类型的交易发送到网络。API 遵循 JSON-RPC 标准。JSON-RPC 是一种无状态、轻量级的远程过程调用 (RPC) 协议,通常在与以太坊交互时使用。
使用方法:申请一个 API 密钥;并且得到一串URL
const axios=require("axios")
const data={
"jsonrpc":"2.0"
"method":"eth_blockNumber",
"params":[],
"id":0
}
const config={
method:"post"
url:"https//eth-mainnet.ALCHEM",
Headers:{
"Content-Type":"application/json"
}
data:data
}
历史分析:从法国古典园林到西方现代园林
摘要:本文通过对法国古典花园及相关西方现代园林的研究 ,阐述总结了古典园林的特点,并结合相关案例,归纳并探讨西方现代园林与古典园林之间的关系。重点从营造手法方面分析与阐述了西方现代园林对古典园林的继承与发展,启迪现代园林的创作与实践。 法国的传统园林都在世界园林史上占据非常重要的地位,深入探讨西方景观园林的营造思想和手法,总结法国古典景观园林的景观特色、造园思想与造园要素,结合法国最优秀现代园林进行对比分析,将有助于解读西方现代园林对古典园林的继承与发展。一、法国古典园林的产生背景与特点17世纪下半叶,路易十四彻底巩固了国家的统一和封建专制制度,把绝对君权推向顶峰。这一时期是法国科学和哲学兴盛的时代,也是古典主义文艺思潮席卷法国和欧洲的时代。当时的政治制度、美学哲学思想及西方古典主义绘画的特点,都对古典主义造园艺术产生了深远的影响。 古典园林的造园思想与景观特色 西方园林营造思想是一种通过控制自然、征服自然来实现自然美的自然美学思想。强调“驾驭自然,改造自然,强迫自然接受均衡的法则”。法国古典园林的景观形态所体现的基本上是一种建筑美,诉诸简明、规则的几何图案,人们常将法国式园林比...
How can new data technology enhance rural revitalization?
Background: With the advent of the fourth industrial revolution, smart terminals such as mobile phones have become popular. The development of advanced tracking technologies has made it possible to collect human oriented, full-coverage and dynamic data (Long et al. 2016)for studying differences in human spatial-temporal behaviors ,which is promising in built environment design. Along with urban areas, there are tens of thousands of villages which are entering the era of big data. The protecti...
Solv Protocol :金融NFT的底层标准创新
背景知识:NFT底层协议标准说明与ERC20协议相似的,NFT有三种底层协议标准——ERC-721,ERC-1155,ERC-998。 1、ERC-20:即FT;其主要优势在于可计算,但是缺乏描述能力,如果想要描述100类token,必须要编写100个不同的ERC20合约,发布100种不同的ERC20 tokens。每个token仅有数量属性。 2、ERC-721:每个NFT都是独一无二、没有同类、不可拆分。——不可计算 描述能力强,可以通过创建一个ERC721合约,然后铸造100个不同的NFT,每个NFT/token都有一个Token ID。案例:加密猫 3、ERC-1155: 描述能力强,可以通过创建一个ERC1155合约,然后铸造100个不同的Token ID,每个ID都是一个类别,**一个类别中的token没有任何区别,有数量属性。**这里的ID和ERC721对比来看的区别是:ID不再是某个物品,而是一个类别。 案例:游戏中的一类道具:ERC1155可以满足不同场景下的灵活需求,比如同时转账多数量的多类别资产,也可以转账多数量的同一类别资产,大大提高了转账的快捷方便程度。...
Share Dialog
Share Dialog

Subscribe to Evelyn

Subscribe to Evelyn
<100 subscribers
<100 subscribers
No activity yet