今天早上收到客戶給我的主持照片🥰
在彩排中,所以穿的是我自己外出的衣服😂
謝謝pure storage😍
謝謝一直很挺我的客戶
昨天晚上在我大學的學長姐跟學弟妹面前,分享我畢業後一路以來的工作
其實高中畢業後我有個幾個不同類型的打工
只是我在準備的時候,只有著墨在你們比較知道的主持、花藝跟美甲
昨天上台之前我超級超級緊張
比我平常主持活動還緊張好幾倍!
對我來說,介紹廠商跟產品,比讓我介紹自己還要簡單多了!
畢竟我一直都沒想過會跟誰分享我的主持經歷
也沒有想過有一天在台上的自己是主角(畢竟主持人的工作大多時候是屬於品牌的配角)
但真的分享完之後除了鬆一口氣,還有種
「啊,我還有好多事很有趣或很特別,竟然分享完才想到!」
有點可惜!但也沒關係
反正我一直習慣把事情放在自己記憶裡🤣(只是常常忘記☺️
#週末愉快
#聽說明天變天
同時也有3部Youtube影片,追蹤數超過14萬的網紅RagaFinance財經台,也在其Youtube影片中提到,Raga Finance:一股定輸贏 20210303 主持:希少、Jace 大大 全版本: https://youtu.be/vS7uPOpVCdQ 第一節:Sea Limited (SE) 業績速遞, Rocket Companies (RKT) 股價火箭升空但不是做火箭,Rocke...
「pure storage介紹」的推薦目錄:
- 關於pure storage介紹 在 Facebook 的最佳解答
- 關於pure storage介紹 在 Raga Finance Facebook 的最讚貼文
- 關於pure storage介紹 在 Taipei Ethereum Meetup Facebook 的最佳貼文
- 關於pure storage介紹 在 RagaFinance財經台 Youtube 的最讚貼文
- 關於pure storage介紹 在 RagaFinance財經台 Youtube 的精選貼文
- 關於pure storage介紹 在 BeautywithFei Youtube 的精選貼文
- 關於pure storage介紹 在 pure storage缺點2023-精選在臉書/Facebook/Dcard上的焦點 ... 的評價
- 關於pure storage介紹 在 pure storage缺點2023-精選在臉書/Facebook/Dcard上的焦點 ... 的評價
- 關於pure storage介紹 在 一股定輸贏20210303 -- 第二節:Pure Storage (PSTG) 業務 ... 的評價
pure storage介紹 在 Raga Finance Facebook 的最讚貼文
Raga Finance:一股定輸贏 20210303 -- 資料狗 Pure Storage (PSTG) & Palantir Technologies (PLTR)
主持:希少、Jace 大大
全版本:
https://youtu.be/vS7uPOpVCdQ
第一節:Sea Limited (SE) 業績速遞, Rocket Companies (RKT) 股價火箭升空但不是做火箭,Rocket Lab真係做火箭借殼上市 (VACQ)
https://youtu.be/NQ4KP8aQrJc
第二節:Pure Storage (PSTG) 業務介紹及投資故事,Palantir Technologies (PLTR) 業務前景
https://youtu.be/2-EEHOers2w
成為 RF 鐵粉團的一分子!只需港幣 $40 一個月,即享獨家影片及專屬貼圖優惠!
https://www.youtube.com/channel/UCETuQf4lzTrfevoHdSGo8Ew/join
Raga Finance
網址: www.ragafinance.com
◎◎◎ 訂閱 ◎◎◎
▶
Ragazine:
https://www.youtube.com/channel/UC5DWcqCjBne2-wRnrjxkuHQ?sub_confirmation=1
▶
Raga Finance:
https://www.youtube.com/channel/UCETuQf4lzTrfevoHdSGo8Ew?sub_confirmation=1
RagaFinance Facebook: https://www.facebook.com/ragafin/
👉是日焚道 - Everyday's Vin! 加入Patreon
http://patreon.com/calvinchoy
※※※想知道我們每天的動向※※※
▶ Web http://www.ragazine.com.hk/
▶ Web http://www.ragafinance.com/
▶ FB (Ragazine) : https://www.facebook.com/www.ragazine.com.hk/
▶ FB (Raga Finance) : https://www.facebook.com/ragafin/
▶ IG ( https://www.instagram.com/ragazinehk/
◆◆◆工 商 聯 絡 ◆◆◆
▶ E-mail : admin@ragafinance.com
#ragafinance #PSTG #PLTR
------------------------------------------------------------------------------------------------------------------------------------------
免責聲明:《Raga Finance》竭力提供準確資訊,惟不保證絕對無誤,資訊如有錯漏而令閣下蒙受損失(不論公司是否與侵權行為、訂立契約或其他方面有關),本公司概不負責。
同時,《Raga Finance》所提供之投資分析技巧與建議,只可作為參考之用,並不構成要約、招攬、邀請、誘使、任何不論種類或形式之申述或訂立任何建議及推薦,讀者務請運用個人獨立思考能力自行作出投資決定,如因相關建議招致損失,概與《Raga Finance》主持、嘉賓、編輯及記者無關。
同時,《Raga Finance》所有節目或資訊,相關內容屬作者個人意見,並不代表《Raga Finance》立場。
Raga Finance
網址: www.ragafinance.com
pure storage介紹 在 Taipei Ethereum Meetup Facebook 的最佳貼文
📜 [專欄新文章] 可升級合約介紹 - 鑽石合約(EIP-2535 Diamond standard)
✍️ Kimi Wu
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Photo by Evie S. on Unsplash
前言
可升級合約簡單來說是透過 proxy contract(代理合約)來達成,藉由代理合約去呼叫欲執行的合約,若要升級,則把代理合約中的指向的地址換為新的合約地址即可。而執行的方式則是透過 delegateCall,但 delegateCall 不會更動目標合約的狀態。所以要怎麼處理變數,就是一門學問了。
舉例來說,contract B 有個變數 uint256 x,初始值為 0, 而 function setX(uint256),可以改變 x 的值。proxy contract A 使用 delegatecall 呼叫 contract B 的 setX(10),交易結束後,contract B中的 x 依然還是 0。
OpenZeppelin 提出了三種實作方式,可以做到可升級合約,細節可參考 Proxy Patterns,而最終的實作選用了 Unstructured Storage的這個方式,這種方式對於開發較友善,開發時不需特別處理 state variables(不過升級時就需要特別注意了)。而這篇主要是介紹 Diamond standard,OpenZeppelin 的可升級合約就不多做介紹。
USDC V2 : Upgrading a multi-billion dollar ERC-20 token 詳細地介紹代理合約跟變數儲存之間的關係,不了解升級合約的原理,建議先看看。
鑽石合約
名詞介紹
diamond:合約本體,是一個代理合約,無商業邏輯
facet:延伸的合約(實際商業邏輯實作的合約)
loupe:也是一個 facet,負責查詢的功能。可查詢此 diamond所提供的 facet與facet所提供的函式
diamondCut:一組函式,用來管理(增加/取代/減少)此 diamond合約所支援的功能
Loupe
直接來看 loupe的介面,從宣告就能很清楚暸解 diamond合約的實作方式,loupe宣告了一個結構 Facet,Facet結構包含一個地址及 function selector 陣列,所以我們只需要記錄一個 Facet陣列就可以得知這個 diamond 合約有多少個延伸合約及所支援的功能(loupe只定義結構,而實際變數是存在diamon合約中的)。也就是 diamond合約中只記錄延伸合約的地址及其支援的 function selectors,及少數 diamond合約的管理邏輯,並無商業邏輯,因此可以外掛非常非常多的合約上去(就像一個Hub),也就可以突破一個合約只有24K的限制。
// A loupe is a small magnifying glass used to look at diamonds.interface IDiamondLoupe { struct Facet { address facetAddress; bytes4[] functionSelectors; } function facets() external view returns (Facet[] memory facets_); function facetFunctionSelectors(address _facet) external view returns (bytes4[] memory facetFunctionSelectors_); function facetAddresses() external view returns (address[] memory facetAddresses_); function facetAddress(bytes4 _functionSelector) external view returns (address facetAddress_);}
DiamondCut
至於 facet在 diamond合約上的註冊或是修改,就由 diamondCut負責,從以下程式碼可以清楚瞭解其功能(EIP中有規範,每次改變都需要發送DiamondCut事件)
interface IDiamondCut { enum FacetCutAction {Add, Replace, Remove} // Add=0, Replace=1, Remove=2 struct FacetCut { address facetAddress; FacetCutAction action; bytes4[] functionSelectors; } function diamondCut( FacetCut[] calldata _diamondCut, address _init, bytes calldata _calldata ) external; event DiamondCut(FacetCut[] _diamondCut, address _init, bytes _calldata);}
Diamond合約
接下來就是最核心的部分 — diamond本體合約。以下是官方的範例,方法上跟 OpenZeppelin 一樣使用 fallback 函式跟 delegateCall 。
呼叫合約所不支援的函式,就會去執行 fallback 函式,fallback 函式中再透過 delegateCall 呼叫 facet 合約相對應的函式
fallback() external payable { address facet = selectorTofacet[msg.sig]; require(facet != address(0)); // Execute external function from facet using delegatecall and return any value. assembly { calldatacopy(0, 0, calldatasize()) let result := delegatecall(gas(), facet, 0, calldatasize(), 0, 0) returndatacopy(0, 0, returndatasize()) switch result case 0 {revert(0, returndatasize())} default {return (0, returndatasize())} }}
主要的差異在於變數的處理,OpenZepplin 是針對單一合約設計的代理合約(也就是每個合約都有自己的代理合約),所以無法處理單一代理合約儲存多個合約的變數(state variables)的狀況(後有圖例)。先由官方的範例程式來了解是怎麼處理變數的
在官方的範例中,都是以更改合約 owner 為例子
首先看到 DimaondStorage這個結構,結構中的前面三個變數都是在維持 diamond合約的運作(同上面loupe的範例),最後一個變數 contractOwner就是我們商業邏輯中所需的變數。
接著看到 function diamondStorage(),取變數的方式就跟OpenZeppelin 儲存特定變數方式一樣(EIP-1967),是把變數存到一個遠方不會跟其他變數碰撞到的位置,在這裡就是從 DIMOND_STORAGE_POSITION 這個 storage slot 讀取。
在實作上就可以有 LibDiamond1 ,宣告DIMOND_STORAGE_POSITION1=keccak256("diamond.standard.diamond.storage1") ,負責處理另一組的變數。藉由這種方式讓每個 facet合約有屬於自己合約的變數, facet合約間就不會互相影響。而最下方的 setContractOwner 是實際使用的範例。
library LibDiamond {
bytes32 constant DIAMOND_STORAGE_POSITION = keccak256("diamond.standard.diamond.storage");
struct FacetAddressAndSelectorPosition { address facetAddress; uint16 selectorPosition; }
struct DiamondStorage { mapping(bytes4 => FacetAddressAndSelectorPosition) facetAddressAndSelectorPosition; bytes4[] selectors; mapping(bytes4 => bool) supportedInterfaces; // owner of the contract address contractOwner; }
function diamondStorage() internal pure returns (DiamondStorage storage ds) { bytes32 position = DIAMOND_STORAGE_POSITION; assembly { ds.slot := position } }
function setContractOwner(address _newOwner) internal { DiamondStorage storage ds = diamondStorage(); address previousOwner = ds.contractOwner; ds.contractOwner = _newOwner; emit OwnershipTransferred(previousOwner, _newOwner); }
每個 library 處理了一組或多組變數的存取, facet 合約透過 library 對變數做操作。也就是把變數存在diamond主體合約,延伸的 facet合約只處理邏輯,是透過 library 去操作變數。
下面圖中清楚地解釋了 facet合約,function selectors 與變數之間的關係,從最左上這邊有個 facets 的 map,紀錄了哪個 selector 在哪個合約中,例如func1, func2是 FacetA的函式。左下角宣告了變數,每組變數的存取如同上述 library 的方式處理。
https://eips.ethereum.org/EIPS/eip-2535#diagrams
在 diamond的設計中,每個 facet合約都是獨立的,因此可以重複使用(跟library 的概念一樣)
https://eips.ethereum.org/EIPS/eip-2535#diagrams
小結
diamond合約使用不同的設計來達成合約的可升級性,藉由這種Hub方式可隨時擴充/移除功能,讓合約不再受限於24KB的限制,此外充分的模組化,讓每次升級的範圍可以很小。最後,因為跟library一樣只處理邏輯,並無狀態儲存,所以可以重複被不同的diamond合約所使用。
雖然又不少好處,也是有些缺點。首先,術語名詞太多,facet, diamondCut, loupe等等(其實還有好幾個,不過沒有介紹到那些部分,所以沒有寫出來)。開發上不直覺,把變數跟邏輯拆開,若要再加上合約之間的繼承關係,容易搞混,不易維護。最後,gas的花費,在函式的讀取、呼叫,變數的存取、傳遞都會有不少的額外支出。Trail of Bits 專欄中有點出更多的缺陷 Good idea, bad design: How the Diamond standard falls short,不過作者也有反擊 Addressing Josselin Feist’s Concern’s of EIP-2535 Diamond Standard,有興趣的讀者可以自行看看、比較。
為了模組化及彈性,diamond合約在設計上有點太複雜(over engineering),會造成可讀性越差(這點也是Vyper誕生的原因之一),而可讀性越差就越容易產生bug、也越不容易抓到bug,而在defi專案中,一個小小的bug通常代表著大筆金額的損失 😱😱😱。
雖然如此,筆者還是覺得很酷,有些設計的思維仍然可以使用在自己的專案
ref:
EIP 2535
Diamond 實作
Addressing Josselin Feist’s Concern’s of EIP-2535 Diamond Standard
OpenZeppelin upgradeable contract
可升級合約介紹 - 鑽石合約(EIP-2535 Diamond standard) was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
pure storage介紹 在 RagaFinance財經台 Youtube 的最讚貼文
Raga Finance:一股定輸贏 20210303
主持:希少、Jace 大大
全版本:
https://youtu.be/vS7uPOpVCdQ
第一節:Sea Limited (SE) 業績速遞, Rocket Companies (RKT) 股價火箭升空但不是做火箭,Rocket Lab真係做火箭借殼上市 (VACQ)
https://youtu.be/NQ4KP8aQrJc
第二節:Pure Storage (PSTG) 業務介紹及投資故事,Palantir Technologies (PLTR) 業務前景
https://youtu.be/2-EEHOers2w
成為 RF 鐵粉團的一分子!只需港幣 $40 一個月,即享獨家影片及專屬貼圖優惠!
https://www.youtube.com/channel/UCETuQf4lzTrfevoHdSGo8Ew/join
成為一名經人Patreon :
https://www.patreon.com/awesomomists
www.RagaFinance.com
RagaFinance Facebook:
https://www.facebook.com/ragafin/
?是日焚道 - Everyday's Vin! Patreon ?
http://patreon.com/calvinchoy
◎◎◎訂閱 ◎◎◎
▶
Ragazine : https://www.youtube.com/channel/UC5DWcqCjBne2-wRnrjxkuHQ?sub_confirmation=1
▶
Raga Finance: https://www.youtube.com/channel/UCETuQf4lzTrfevoHdSGo8Ew?sub_confirmation=1
#RagaFinance
------------------------------------------------------------------------------------------------------------------------------------------
免責聲明:《Raga Finance》竭力提供準確資訊,惟不保證絕對無誤,資訊如有錯漏而令閣下蒙受損失(不論公司是否與侵權行為、訂立契約或其他方面有關),本公司概不負責。
同時,《Raga Finance》所提供之投資分析技巧與建議,只可作為參考之用,並不構成要約、招攬、邀請、誘使、任何不論種類或形式之申述或訂立任何建議及推薦,讀者務請運用個人獨立思考能力自行作出投資決定,如因相關建議招致損失,概與《Raga Finance》主持、嘉賓、編輯及記者無關。
同時,《Raga Finance》所有節目或資訊,相關內容屬作者個人意見,並不代表《Raga Finance》立場。
Raga Finance
網址: www.ragafinance.com
pure storage介紹 在 RagaFinance財經台 Youtube 的精選貼文
aga Finance:一股定輸贏 20210303 -- 第一節:Sea Limited (SE) 業績速遞, Rocket Companies (RKT) 股價火箭升空但不是做火箭,Rocket Lab真係做火箭借殼上市 (VACQ)
主持:希少、Jace 大大
全版本:
https://youtu.be/vS7uPOpVCdQ
第一節:Sea Limited (SE) 業績速遞, Rocket Companies (RKT) 股價火箭升空但不是做火箭,Rocket Lab真係做火箭借殼上市 (VACQ)
https://youtu.be/NQ4KP8aQrJc
第二節:Pure Storage (PSTG) 業務介紹及投資故事,Palantir Technologies (PLTR) 業務前景
https://youtu.be/2-EEHOers2w
成為 RF 鐵粉團的一分子!只需港幣 $40 一個月,即享獨家影片及專屬貼圖優惠!
https://www.youtube.com/channel/UCETuQf4lzTrfevoHdSGo8Ew/join
成為一名經人Patreon :
https://www.patreon.com/awesomomists
www.RagaFinance.com
RagaFinance Facebook:
https://www.facebook.com/ragafin/
?是日焚道 - Everyday's Vin! Patreon ?
http://patreon.com/calvinchoy
◎◎◎訂閱 ◎◎◎
▶
Ragazine : https://www.youtube.com/channel/UC5DWcqCjBne2-wRnrjxkuHQ?sub_confirmation=1
▶
Raga Finance: https://www.youtube.com/channel/UCETuQf4lzTrfevoHdSGo8Ew?sub_confirmation=1
#RagaFinance
------------------------------------------------------------------------------------------------------------------------------------------
免責聲明:《Raga Finance》竭力提供準確資訊,惟不保證絕對無誤,資訊如有錯漏而令閣下蒙受損失(不論公司是否與侵權行為、訂立契約或其他方面有關),本公司概不負責。
同時,《Raga Finance》所提供之投資分析技巧與建議,只可作為參考之用,並不構成要約、招攬、邀請、誘使、任何不論種類或形式之申述或訂立任何建議及推薦,讀者務請運用個人獨立思考能力自行作出投資決定,如因相關建議招致損失,概與《Raga Finance》主持、嘉賓、編輯及記者無關。
同時,《Raga Finance》所有節目或資訊,相關內容屬作者個人意見,並不代表《Raga Finance》立場。
Raga Finance
網址: www.ragafinance.com
pure storage介紹 在 BeautywithFei Youtube 的精選貼文
發問前請詳閱資訊欄並維持禮貌,一起創造更好的網路禮儀環境
Any constructive criticism is welcome. Please make our Internet a better environment.
我回歸了~
搬完新家,新工作,從直播平台畢業後
整個人都換然一新
這集主要跟大家分享我是如何收納彩妝保養品的
把握影片中的三個原則
拿取方便又實用
所有東西都能一目瞭然
之後再針對收藏的部分另外介紹
希望這支影片對於大家有一點幫助
喜歡我的影片記得幫我按個讚👍
別忘了訂閱我的頻道喔❤️
也可以去加入我的Facebook粉絲專頁
更多精彩的美國生活也在Instgram與你們分享
想要跟菲菲分享任何彩妝或是生活都可以tag #beautywithfei
Love n Peace
-
影片中提到的有/Product mentioned
►Impressions Vanity HOLLYWOOD GLOW® PRO VANITY MIRROR
https://ppt.cc/f9iVIx
►淘寶耳環收納
我買的款式已經沒有了,賣家是這間
https://ppt.cc/fyI1Hx
►家而適吹風機架
他們家的東西都很不錯
我臺灣家還有毛巾架,浴室置物架等等
毛巾架真的大推只是真的太重了我搬不來美國
https://ppt.cc/ffyS7x
►IKEA 抽屜
https://ppt.cc/fwoMhx
►IKEA 桌板
https://ppt.cc/fuc0Vx
►收納椅子
我買的那個已經找不到連結了
大家可以搜搜 Amazon 上面的 Storage Chair
-
💄本日妝容💄/Makeup today
底妝/Face
雪肌粹CC絲絨雪粉餅
Chanel Blush Rose Bronze
Essence Pure Nude Highlighter
眼妝/Eyes
ABH Brow Wiz // Medium Brown
Too Faced Peach Palette
唇妝/Lips
Hourglass Lipstick // You Are My
YSL Shine Oil-In-Stick Lipstick // 46
隱形眼鏡/Lens
Olens Genith3 Natural Gray 6 months
-
本影片產品無任何廣告意圖,所有產品皆為本人購入,盜圖必究
This is not a sponsored video. All the products were purchased by myself.
-
My skin type is dry and sensitive
The foundation I use
Estee Lauder Double Wear Foundation // 1W1
Shuemura Light Bulb Foundation // 774
Wet N Wild Photo Focus Foundation in // Soft Ivory
Revlon Color Stay Foundation // 150 Buff
Giorgio Armani Power Fabric // 02
Hourglass Vanish Stick Foundation // Bisque
我的肌膚是混合性偏乾,T字會輕微出油,鼻翼兩側偏乾
-
Hi everyone my name is Fei. You can follow my social media if you want to know more about me and my life. Please subscribe my channel and give me a thumb up if you enjoy this video. Love n Peace❤️👼
Facebook:菲菲 Fei
Instgram:BeautywithFei
Business Email:goo102383@gmail.com
pure storage介紹 在 pure storage缺點2023-精選在臉書/Facebook/Dcard上的焦點 ... 的推薦與評價
[專欄新文章] 可升級合約介紹- 鑽石合約(EIP-2535 Diamond standard) ✍️ Kimi Wu 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵 ... ... <看更多>
pure storage介紹 在 一股定輸贏20210303 -- 第二節:Pure Storage (PSTG) 業務 ... 的推薦與評價
Raga Finance:一股定輸贏20210303 -- 第二節: Pure Storage (PSTG) 業務 介紹 及投資故事,Palantir Technologies (PLTR) 業務前景. Watch later. ... <看更多>
pure storage介紹 在 pure storage缺點2023-精選在臉書/Facebook/Dcard上的焦點 ... 的推薦與評價
[專欄新文章] 可升級合約介紹- 鑽石合約(EIP-2535 Diamond standard) ✍️ Kimi Wu 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵 ... ... <看更多>