一、token的概念
1.token的英文說法
談到eosio中的token,我們要先說下token這個詞。首先,我們先看下英文本典中的說法:
token
- n.
代幣; 象徵; 記號;
- adj.
作為對某事的保證的; 象徵性的; 作為標誌的;
- vt.
預兆:預示或象徵,預兆;
# 變形
複數: tokens
? 可以看到token不僅有「代幣」的意思,還能包含積分、財產、證書等。如果進一步擴充套件的話,也可以代表榮譽標識、身份標識暨確權工具、系統資產量化指標、系統通行證和系統保護等,也就是說可以成為任何事物的權益或價值的代表。
2.token的區塊鏈認知
? 那麼,在區塊鏈的概念中,token的認知應該是什麼?從應用的角度來說,token其實也是一種應用,其目的就是充當代幣。最典型的例子就是位元幣、以太幣、eos等等。
? 目前,token主要分為兩大類:
? 第一類,可以理解為內部token,即維持區塊鏈運營所發行的代幣,用以激勵礦工驗證及創造區塊,礦工需通過出塊工作來進行換取。其實,這一類就可以理解為可以流通的數字加密的貨幣。
? 第二類,可分為權益代幣和債券代幣,就類似於投資和債券,並非貨幣,其代表就是現實中的**和債券,購買可以獲得一定的收益分紅和利息回報。
? 在區塊鏈平台中,token代表了使用者所擁有的價值。使用者在eos平台上做的所有操作最終都會落到基於token的流通上,都是 以價值為核心的,這個與我們目前所使用的社會貨幣的流通與價值方式是完全一致的。
? 在幣圈中有一種說法,認為token是通往自由的通證。這些布道者認為:token的本質,是金融權利的被技術穿透,技術進步帶來的天賦人權,每乙個碳生物和機械人都是平等的,每乙個人類都可以用自己的信用做背書發行token,來募集生產資料(幣,或者等值算力)去實現自己的想法。不需要被任何人類社會組織結構剝削和脅迫而使用法幣,所有的價值,應該都是基於人和人、人和機器、機器和機器之間形成的共識,通過演算法予以確認。
對於數字貨幣信仰者來說,token是通往自由的通證。
首先,第一次擺脫了『債』的體系,以『token』來計量生產。
其次,token是加密的,**無法監管、無法剝奪、無法控制,100%避稅,穿透了所有金融監管和法律體系,讓金融牌照廢紙化,是首個超越暴力控制的產權模式。
最後,token天然是去中心化的、動態的,是認同的一種標誌。隨著核心生產資料從土地、礦產和能源,變成算力、智力和資料,勞動者、企業主的話語權越來越強,人才和智力是無法接受法幣剝削的,只能撮合,交換,達成共識。
二、token是如何建立和發行、流通的
? token的概念我們已經清楚了,既然它是一種金融權利的技術實現,那麼它本身必然也帶有金融的特性,那麼它是如何運用在區塊鏈平台上的呢?作為數字貨幣,與我們真實社會上使用的法幣的特性保持了一致,所以也是需要有著建立、發行和流通過程,只不過這些流程需要通過區塊鏈平台提供的系統介面功能或智慧型合約來進行實現。在eos平台上,是通過eosio.token智慧型合約來實現的。eosio中的所有合約都必須從基類contract來派生,contract基類的定義如下:
? 我們再來初步看下eosio.token 合約的原始碼結構,如下圖所示:
? 從上面的**中,我們可以清楚的看到token對外提供的合約方法為:
? 三個代幣的操作方法 create:建立代幣、issue:發行代幣、transfer:代幣轉賬
? 兩個代幣的查詢方法 get_supply: 獲取代幣的**量資訊、get_balance:獲取指定賬號代幣資訊
? 以上的方法中,使用到了乙個定義為asset的類,這個類就是用來記錄代幣資訊的物件類,其定義如下:
? 我們可以看到,eosio中的asset資產類有兩個私有成員變數,amount代表的是資產的數量,是個無符號64位整數;而sym則代表了當前資產的代幣型別物件。
三、token是如何在eosio中進行精度化儲存和使用的
? 我們在平時使用eos時,有時會發現代幣有帶小數點後幾位的情況,但是之前介紹的token合約中,我們看到的asset資產類中的數量型別卻是無符號64位整數,這是怎麼回事呢?下面我們來具體的看下eos中是如何來對資產資訊進行精度化儲存和使用的。
? 重點看下symbol的定義,如下:
還有需要我們關注的實現**相關的內容:string_to_symbol_c方法,實現了給出代幣小數點精度和名稱後生成相應代幣物件唯一uint64_t id 的過程。
symbol的方法實現:
asset的to_real方法:
從上面的這段**再結合之前的asset的方法,我們可以認識到如下幾點:
a.代幣的小數點後精度和代幣的名稱字串能夠生成乙個唯一的uint64_t型別的代幣id值
b.代幣物件儲存在乙個uint64_t型別的空間中,最低8位存放 精度值,其他7個位元組則按照反向位元組序儲存代幣的名稱位元組。舉例:代幣(18,"galaxy")在儲存空間中是這樣的,如下圖所示:
c. 最終asset的儲存是儲存的uint64_t型別的數量值,但其對應的代幣的型別決定了儲存的數值在取出來用的時候,需要根據計算出的換算比率,來進行數值轉換,這也是為什麼我們在asset類中看到存在乙個名叫to_real的方法,就是直接將數量值除換算數。存入時數量是整數值,要乘以換算數,取出時,則用整數值除以換算數,如下圖所示,資產a的外部表示是個浮點數,但儲存的時候存的是整數值,換算過程如下:
鏈結星河公鏈
揭開信貸神秘面紗
貸款信用保險是指保險人對銀行或其他金融機構與企業之間的借貸合同進行擔保,以承保借款人信譽風險的保險。在貸款信用保險中,貸款方 即債權人 是投保人。但保單簽發後,貸款方即成為被保險人。當企業無法歸還貸款時,債權人可以從保險那裡獲得補償。貸款人在獲得保險人的補償後,必須將債權轉讓給保險人,由保險人向借款...
揭開Zookeeper神秘面紗
zookeeper是乙個開源的分布式的,為分布式應用提供協調服務的apache專案。hadoop 和hbase的重要元件。它是乙個為分布式應用 提供一致性服務 的軟體,提供的功能包括 配置維護 網域名稱服務 分布式同步 組服務 等。1 zookeeper 乙個領導者 leader 多個跟隨者 fol...
揭開MVC的神秘面紗
最近參加的高校平台專案中涉及到了 mvc。mvc,有人說是一種設計模式,也有人說是使用者介面層設計架構。那麼 mvc到底是什麼呢?今天我們一起來學習一下。mvc,即model view controller,把乙個應用的輸入 處理 輸出流程按照 model view controller 的方式進行...