2020年10月20日,密碼極客發起了第一期[波卡生態系列分享會]。我們非常榮幸邀請到了Parity亞洲區技術總監賈瑤琪博士做客密碼極客大咖直播間,為大家講解《如何基于波卡開發區塊鏈項目》。
1、在波卡上如何開發區塊鏈系統?
大家作為不管是開發者或者是區塊鏈從業人員,應該都能感覺到從零開始構造一個區塊鏈是一個非常困難的事情,為什么說是很困難的事情?
圖1
大家可以看一下圖1,其實要從頭開發一個區塊鏈,你要考慮到的就不只是數據庫公式算法,還要考慮到處理各種各樣的交易相關的一個轉換函數。與此同時,如果你想加一些比較復雜或者先進的一個邏輯在里邊,例如零知識證明,這樣就要在開發區關聯時候額外添加這些比較復雜的算法以及功能。
那么大家其實就會想到我們如何使用已經有的這些,不管是公鏈技術或者是聯盟鏈技術來進行二次開發。其實在過去的十幾年當中,特別是從09年比特幣白皮書這樣的一個上線,以及15年以太坊系統的上線,大家可以看到區塊鏈不止可以做支付,而且還可以在上邊部署一些智能合約。那么的話就有很多開發者是基于比特幣做二次開發,以及一些比較有意思的這種utxo模型的這樣的一個區塊鏈系統,還有根據以太坊做的一些調整,然而這些基于已有的區塊鏈開進行二次開發來做一些新的鏈這樣的一個系統,他們最大的問題就是由于像比特幣或者以太坊早期的這些項目,他們也有一個比較好的開發框架,其實大家都是在源碼基礎上進行改動的,這樣就要求開發者對于源碼的理解是比較高的。與此同時的話,由于這些源碼沒有比較好的模塊化來作為一個框架,其實開發起來的難度是很大的。
而我們Parity其實從 Gavin在很早期15年建立Parity的時候,我們在最初就在幫以太坊開發它的Rust客戶端,之前是叫做Parity Ethereum現在改名叫做Open Ethereum,我們積累了很多各種各樣的對區塊鏈的開發經驗,特別是在從18年開始積極的開發Polkadot跨鏈項目,我們吸收以及總結了很多開發供應鏈的這樣的一些經驗,然后從這些經驗里邊,我們抽取以及進一步的深化,做出了這樣的一個區塊鏈開發框架。而這套框架我們命名為Substrate。
圖2
因為波卡是一個跨鏈項目,那么我們為了幫助開發者更快的開發自己的一個區塊鏈系統,我們就開發了Substrate這樣的一套框架,來方便開發者去開發相關的這樣一個區塊鏈系統,我們叫做平行鏈。大家可以看到 Substrate其實包含了很多剛剛我提到的這種區塊鏈的核心組件,例如數據庫層、網絡層以及可插拔的共識協議。
國際刑警組織正在調查如何監督元宇宙犯罪:金色財經報道,國際刑警組織(INTERPOL)正在調查如何在元宇宙中監督犯罪。然而,國際刑警組織的一名高級官員認為,定義“元宇宙犯罪”存在一些問題。據BBC報道,國際刑警組織秘書長Jurgen Stock透露,該組織打算監督元宇宙中的犯罪活動。Stock強調了“老練和專業”的罪犯適應新技術工具進行犯罪的能力。
此前2022年10月消息,國際刑警組織推出專門為全球執法部門設計的元宇宙INTERPOL Metaverse,該元宇宙允許注冊用戶參觀法國里昂的國際刑警組織總秘書處總部的虛擬場景,甚至可以通過其Avatar與其他官員進行互動以及為全球執法部門提供沉浸式培訓課程。(Cointelegraph)[2023/2/6 11:50:10]
同時,我在之后也會提到包含了比較有意思的鏈下工作機以及鏈上的這種可升級的功能,這樣就可以幫助開發者在開發的時候,其實大家只選用自己想使用的一個模塊,就可以很快速的開發相關的一個區塊鏈系統,可以快到哪種程度,Gavin其實在18年的時候,在Web3峰會做了這樣的一個演講,就是拿出了嶄新的蘋果電腦,然后開始裝這樣的一個Substrate相關的 dependency,然后到最終編譯出一個區塊鏈只花了15分鐘,大家可想而知,這個是18年的不穩定版本,現在的話Substrate已經到了2.0版本,那么在這個版本上進行一個開發,其實會有更好的用戶體驗,是更加快速的。回到咱們今天講的主題,在波卡上如何開發區塊鏈系統,那么相信大家現在已經有了一個比較好的眉目,其實就是使用Substrate這樣的一個開發框架來進行一個開發。
圖3
2、Substrate開發出來的系統有哪幾種方式可以進行部署?
圖4
其實除了作為波卡的平行鏈或者平行線程之外,也可以直接部署成為獨立的鏈。特別是在國內這種特有的環境下,大家也可以使用Substrate搭建自己對應的這種商業邏輯的聯盟鏈或者私有鏈,以及一些對于吞吐量要求比較高的,可以針對某一個應用,例如游戲單獨搭一條鏈并部署在自己相對應的環境下邊,當然了目前大家在Substrate進行開發的時候,比較有利的一點是經過三年,從這個圖可以看到,整個波卡生態的壯大以及開發者持續的開發,Substrate的開發生態以及工具是有很多的,大家可以用Polkadot-js,當然內置的話也是有一個比較好的這種區塊瀏覽器,大家也可以使用Parity Signer這樣的一個離線的硬件錢包。
3、怎么使用Substrate進行Rust開發?
直播|Andrey Belyakov :如何制定DeFi 規則:金色財經 · 直播主辦的金點Trend《以太坊之外的DeFi,香嗎? 》15:00準時開播!本場嘉賓Opium Protocol 的創始人分享Andrey Belyakov “如何制定DeFi 規則”,請掃碼移步收聽![2020/9/1]
圖5
與此同時,除了圖5上面提到的這種ink! 智能合約。這種ink!.Rust類型的智能合約,我們目前也兼容了evm其實大家可以使用這些去編寫智能合約,然后在自己對應的消費鏈上面進行一個運行。接下來我就大致跟大家分享一下怎么使用Substrate進行這種Rust開發。因為Substrate是跟其他的智能合約開發比較不太一樣,因為你是相當于開發一個區塊鏈,雖然區塊鏈底層,像數據庫、網絡、控制協議都搭好了,但是針對你自己特殊的這種需求,例如你要做游戲的一個區塊鏈,或者是偏支付的這樣一個鏈,這種核心的商業邏輯還是需要你進行開發的。
圖6
那么進行開發的話需要這種Substrate Runtime的。圖6里邊大家可以看到,由于Substrate跟我們平時開發智能合約不太一樣,那么的話它是有一些這種開發上面的一些這種policy需要大家去記住的。例如第一點,在Substrate Runtime你如果發了一個我們叫做extrinsic,或者你就把它當做交易,發交易的時候,如果這個交易進行時發生了問題的,那么交易對狀態的改變是不會回滾的。
然后在以太坊上面進行solidity的開發的話,如果交易執行不成功,那么其實它的狀態是會回滾的。這就要求了我們在開發Substrate runtime的時候,最好是我們先自己驗證一下他這樣的一個邏輯對不對?然后再寫。
接下來這幾頁的圖片,大家可以看一下,在寫這種runtime或者相對應的這種邏輯的時候,需要大家在里邊填充自己的這種代碼的,大家可以看模塊定義通常是包含怎么定義存儲事件以及錯誤,還有就是一些相關的這樣的一個函數。
圖7
對于這種如果大家想引用其他的相關的這樣的一些trait的話,因為整個Substrate都用Rust寫,所以這也會用到一些trait,如果大家想知道更多這種Rust相關的信息的話,再可以在網上查一下Rust的相關課程,或者加入我們Substrate的課程,我們會介紹一些 Rust的相關的這種基礎。然后像存儲的話,大家可以看到其實里邊有一些比較簡單的類型、最簡單的方法,大家就可以學習已經有的這些簡單的類型或者這種例子,然后根據自己的實際情況,然后去改一下相關的這種變量名字,進行這樣的一個操作。與此同時的話類似于我們寫智能合約,在做一些操作的時候都要觸發事件或者發出事件,那么這里邊你也可以去定義一個事件。
OKEx金融市場總監:加密貨幣的未來取決于CBDC在未來如何發展:5月24日消息,OKEx金融市場總監Lennix Lai表示,適應中國的CBDC并不是那么困難,因為現金的使用已經有所下降,這要歸功于支付寶和微信支付等電子支付系統的進入。Lai指出,鑒于中國一直在使用需要KYC和其他安全流程的電子支付的事實,中國的金融隱私概念早已不復存在,但當其他國家中央銀行在發行CBDC時,這可能會成為一個問題。另一方面,中國CBDC直接在中央銀行的權力之下并且不提供任何金融隱私這一事實可能會促使人們開始轉向加密貨幣。因此,中國CBDC的啟動確實可以促進并使人們意識到主流加密貨幣的用例和重要性。此外,他表示,比特幣、Ripple和其他加密貨幣的未來取決于CBDC在未來如何發展。如果人們意識到金融隱私的需要,他們可能會涌向比特幣,但在那些金融隱私存在已久的國家,這種去中心化的貨幣可能會被邊緣化。(AMBcrypto)[2020/5/24]
當然了這里面還有一個地方就是decl_module,其實就是要定義自己相對應的這種runtime的函數,我在最后會提到的叫做Substrate.dev這樣的一個網站上面有很多各種各樣的教程,大家可以跟隨教程去學習,以及做一些比較簡單的例子去深入學習,怎么去根據這幾個模塊定義對應的這樣的一個事件存儲和函數,來完成自己對應的這樣的一個Runtime,以及相對應的邏輯的定義以及操作。
4、Substrate應用鏈跟智能合約的差異性在哪?
在這里簡單類比下Substrate應用鏈或者Runtime跟智能合約的差異性。
圖8
大家都知道寫智能合約,特別是以太坊上面的solidity這樣的一個智能合約,很多時候由于solidity以及以太坊本身的限制——比如它存儲量較低、手續費較高,同時像solidity它本身的限制也是比較多,可能更多時候是只能操作整數這種類型。
這就是為什么大家看到的目前以太坊上面比較火熱的應用都是跟通證相關,而不是跟更廣泛的Web3.0相關的原因。
而大家使用Substrate進行開發的時候,就不存在這樣的問題。
因為大家使用Substrate開發的時候,整個鏈都是為開發者所控制的。所以當大家在進行開發的時候,不管是鏈上鏈下數據,或是對應的一些solidity沒有的接口,Substrate都可以進行一個提供。
并且大家也可以看到,Substrate本身的吞吐量也是比較高的,所以可以給應用提供更多的處理交易與邏輯的空間。
與此同時,Substrate本身也會提供一個off-chain worker鏈下工作機,可以幫助做Substrate應用開發的開發者能夠更快的處理相關的鏈下數據,實現鏈上處理鏈下數據,這樣就打通了鏈上與鏈下。
聲音 | 人民郵電報:區塊鏈如何填補法律監管“空白”?:人民郵電報今日發表文章《區塊鏈:如何填補法律監管“空白”?》,文章表示, 如今,把區塊鏈作為核心技術自主創新重要突破口,加快推動區塊鏈技術和產業創新發展,成為大家關注的熱點話題。毫無疑問,區塊鏈將為新一代信息技術發展帶來新機遇,引發新一輪技術創新和產業變革。而與之相隨的,是新技術新業務發展應用所帶來的法律空白和監管困境,如何在監管空白與監管過度之間找到平衡點,成為擺在立法、執法者面前的一道難題。[2019/12/6]
5、無縫無分叉的鏈上升級
熟悉區塊鏈行業的朋友都知道,在過去,所有的公鏈項目包括一些聯盟鏈項目,如果想要做升級的話,都需要進行一個硬分叉。像比特幣,特別是以太坊。大家都知道在16年由于“The DAO”事件,由于礦工意見不同,最終從以太坊分出了經典以太。
我們為什么要做鏈相關的升級?這其實涉及到了一個計算機或者編程行業。
大家其實默認這樣一個現象:沒有任何一個程序員可以寫出沒有漏洞的代碼。
不管是寫傳統的應用,還是寫區塊鏈得應用,或者智能合約。通常情況下你寫的代碼越多,那么你可能產生的安全漏洞就越多。
回顧過去的幾年,不管是DEFI還是鏈本身,大家都會發現很多各種各樣的漏洞,導致很多用戶有各種各樣的財產損失。
這就使得區塊鏈本身需要一個比較好的升級——不管是智能合約升級還是鏈本身的升級。
但如果我們頻頻地去使用這種硬分叉進行升級,首先時間趕不上,因為升級需要“各個礦工在很短的時間內,把自己的軟件升級到最新的版本,然后在某一個特定時間內大家共同去升級到這樣的版本,最后從舊鏈切入到新鏈上面”的這樣的一個邏輯。
然而,由于硬分叉,這種升級模式成本極高,而且很多時候可能會導致你本身的鏈又分叉出其它的鏈。
那么像Substrate就有一個無縫的鏈上升級。其實就是將開發者相對應的一個Runtime提交到鏈上面,然后進行一個驗證者鏈上投票,大家可以看到這其實是跟鏈上治理相關的。
鏈上投票完成以后,如果絕大多數人同意進行對應的一個升級,那么開發者提交的一個Runtime就會被寫入到整個鏈的Runtime里邊,進行對應的升級。
有了這樣一個無分叉鏈上升級,就可以保證區塊鏈開發者可以更安心的運行自己的區塊鏈。
即使出現一些問題,也可以很快的去進行修復或改正。
圖9
6、鏈下工作機(off-chain worker)
大家都知道,在以太坊上面我們有各種各樣的預言機,例如chainlink 。
HeroNode創始人劉國平:工業革命以來最大的技術革命——區塊鏈如何實現去中心化:近日,HeroNode 創始人劉國平受邀前往平安總部進行區塊鏈技術演講。會上,劉國平就“區塊鏈到底是什么”和“區塊鏈有什么特點”兩個問題,用通俗易懂的語言深入淺出地進行講解,并著重介紹了區塊鏈對現有公司業務的挑戰。劉國平,區塊鏈應用技術專家、比特幣第一批礦工、Hero 移動跨平臺框架開發創始人,Hero 理事會會長。曾任職萬得資訊、第九城市、點融網等知名互聯網公司負責技術研發、并深度參與點融網區塊鏈應用場景開發。[2018/4/2]
在過去的半年,預言機是很受到各種各樣的人的關注的。
因為以太坊本身無法打通鏈上鏈下的渠道,所以鏈上如果想要獲得鏈下數據——例如各種各樣的通證價格,就需要這種預言機將數據發送到鏈上。
而Substrate本身就是鏈下工作機的運行原理——其實就是鏈上的這些節點,它們會通過鏈下工作機去取得鏈下的相對應的數據。
圖10
那么這些鏈上的驗證節點,就可以對鏈條數據直接進行處理。
未來的話可以對處理結果——例如在鏈上形成共識,來保證可以更快、更方便的拿到鏈下信息,并進行相關的計算。
像在波卡或Substrate對應的生態里,就不太需要這種單獨的預言機。因為對應的這種鏈下工作機的接口已經寫的比較好了。
與此同時,大家也可以看到對應的這樣一個場景:除了我剛剛提到的想去拿一些鏈下數據;還有就是使用鏈下工作機的一些場景。
例如某些比較龐大的計算,我們就可以使用鏈下工作機來完成,結果完成后再返回給對應的一個鏈上驗證者。
這里有一些鏈下工作機的相關學習資源,大家可以進行一個參考。
圖11
7、如何更好的接入到波卡里面?
前面我講了一些關于例如波卡是如何使用Substrate進行開發的,以及Substrate寫出來的Runtime大概是什么樣的,同時還有Substrate進行開發的優點的話題。
那么大家可能也更想知道:如果用Substrate去開發出一套區塊鏈系統,我是如何更好的接入到波卡里面的?
大家可以看一下圖12,其實就是關于波卡整個的一個框架。
熟悉波卡都知道,Polkadot最中間、最核心的是叫做Relay Chain或者叫做中繼鏈。中繼鏈里面跑了很多對應的驗證節點,叫做區塊驗證節點(Validators)。
圖12
不同的鏈如果接入到中繼鏈里邊,它們就會作為一個平行鏈接入到中繼鏈里邊。
很多比較大的區塊鏈系統,例如比特幣或者以太坊,它們如果想接入到波卡里面,就需要通過橋首先調節到一個平行鏈上面,再通過平行鏈與其他的平行鏈溝通。
作為平行鏈,它們對于內容的或者區塊的驗證要通過中繼鏈相關的驗證節點來完成。
那么的話大家就會問,平行鏈本身需要什么節點?這就像圖里面提到的一樣,需要叫做collator的這樣一個類型的節點。
這些節點就負責采集每個平行鏈對應的區塊,然后提交給中繼鏈隨機選擇的一些區塊驗證節點。這些區塊驗證節點就會去驗證平行鏈里對應的區塊。
與此同時,使用Substrate寫出來的區塊鏈,還需要另外一個模塊叫做Cumulus。大家可以在用Substrate寫完這個Cumulus后,再進行稍微的改進,就可以用Cumulus連入到平行鏈里面。
當然,不是每一個Substrate鏈都可以連入到平行鏈和中繼鏈,或者波卡里面——這就涉及到一個平行鏈插槽的拍賣。
圖13
8、Web3基金會如何支持波卡生態發展?
波卡生態里面的項目特別活躍。大家可以看一下,不管是基金會還是Parity,我們對波卡生態項目的支持,都是很高的。
例如我們在大概3月的時候,就已經發放了超過100個項目對應的Web3項目,與Web3基金市場grant的支持。
與此同時,我們也會有叫做builder?program去幫助社區一些相對成熟的團隊,給他們提供技術及商務市場的一個服務。
當然,作為一個不太熟悉技術的社區成員,你也可以參加我們的大使計劃,去幫忙推廣波卡相關的技術及理念。
圖14
在亞洲或者國內,大家可以看到從今年5月份開始,我們跟萬向合作做了Web3訓練營,孵化了15支團隊。
這15支團隊大部分已經上了相關的測試網和主網。然后像做融資等也都是非常受歡迎的。
未來,我們也希望有更多、更好的團隊可以加入到我們的Web3訓練營里。我們會提供技術、商務以及市場相關的支持。
全球已經有超過100個團隊基于Substrate進行開發區塊鏈。
我們作為亞洲團隊或者說中國團隊,大家可以看到,在過去的一段時間里,我們已經為大家提供了各種各樣的Substrate開發的相關中文資料。
不管是知乎專欄、Polkadot公眾號,還是線上、線下活動,包括嗶哩嗶哩直播,都歡迎大家去搜索Substrate,或搜索我們的社區,積極加入到我們的活動里面。
與此同時,我們也有一些最新的活動——例如在月底我們要舉辦國內首次web3大會,主題就是開放、開源、互聯。
我們會邀請海內外——不只是區塊鏈行業或波卡生態項目及嘉賓,我們還會邀請海內外比較出名的、對Web3整個領域貢獻比較大的嘉賓,去分享他們對Web3的理解,以及對Web3生態的貢獻。
圖15
大家如果感興趣,可以去學習這樣的一個教程,去體驗一下Substrate新的開發框架——不管是鏈上升級,還是鏈下工作機。以及我們提供的各種各樣的模塊,來搭建自己的區塊鏈。
很高興今天能收到密碼極客的邀請,今天為大家分享了這么多,也希望大家未來不管是在波卡生態,還是在區塊鏈生態,都能夠更好的開發、融入到我們的區塊鏈行業,謝謝大家!
問題一,來自網易區塊鏈創新業務負責人胡志敏。
胡志敏:如果作為一個開發者,想在波卡生態中和基于Substrate上進行區塊鏈創業的話,一定會需要一些啟動資金,我想了解polkadot官方基金對于區塊鏈應用的扶持策略,比如對于什么樣的項目會啟用官方投資?
賈瑤琪博士:關于波卡生態和機器設備進行開發的相關項目和團隊,我剛剛已經講過,不管是基金會還是parity,都會提供比較大的支持。
關于資金方面,基金會會根據項目相關的資質來進行評估。
大家可以去申請一個叫做Web3 grant這樣的一個項目。對于一些相對比較好的項目,基金會會提供大概3萬美金的一個支持。
當然,對于比較復雜的項目也會提供更高資金的支持,但是需要花費更長的時間進行審核。
對于一些相對成熟的、有產品或者有測試網的項目,可以申請我們比較成熟的、相關的一些program。例如builder program或者我們的web3 bootcamp,web3訓練營。我們會對這些項目提供技術市場以及商務相關的指導與幫助。
與此同時,我們也會聯系波卡生態里比較積極,支持我們的相關投資人或者海內外投資人,去幫忙觀察一下這些項目,并且進行一些相關的投資。
問題二和問題三來自Coinversation代碼貢獻者,北大畢業,有12年程序開發經驗的清歡。
問題二
清歡:如果開發平行鏈,后續平行鏈接入卡槽的成本會是多少?
賈瑤琪博士:針對第一個問題,如果開發平行鏈,那么插槽的成本會是多少?目前來講,我們還沒有一個很明確的計算。例如大概多少的dot你可以拿到插槽。但就目前來看——因為我們的插槽不是直接去買賣的,而是需要用戶去鎖自己對應的一個dot——那么的話,其實我們還是鼓勵不同的團隊去更好的發展自己的社區,在未來可以通過眾籌的方式或去發展自己平行鏈這樣的一個盈利能力,然后就可以用自己盈利獲得的資金去進行插槽拍賣。
問題三
清歡:Coinversation使用ink!智能合約開發項目,目前從開發工具到智能合約測試再到部署都相對比較煩瑣,后續如何能降低這些開發的門檻?
賈瑤琪博士:ink!現在已經出到第三個版本,具體情況大家可以去看一下。
關于ink!相關的開發、開發的模塊以及相關的組件,我們也在逐步進行開發完善,從而方便更多的開發者去更好的使用ink!科技來進行開發。
目前你講得也很對,可能有些開發工具確實不是那么地到位。但我們的Web3基金會已經給了一些開發工具的團隊在做類似于remix的一個Ide,來幫助開發者使用ink!進行開發。
問題四
Polkadot社區1群成員:波卡或Substrate的應用開發必須要作為平行鏈嗎?這樣每個應用都開發鏈,平行鏈的插槽不夠了怎么辦?
賈瑤琪博士:除了平行鏈,其實還是有其他的方法。
第一個方法就是我剛剛提到的,可以去通過平行線程,然后接入到系統里面。
平行線程不需要一個平行鏈團隊獨占一個插槽超過半年或兩年。它只按需競拍不同的區塊,然后把自己的區塊寫入到波卡系統里面。
當然,還有一些方式。如果你只是搭建一個比較簡單的應用,那么可以嘗試使用ink! 或Solidity編寫智能合約,然后可以將自己的智能合約或者相關的應用部署在智能合約平行鏈上面。通過智能合約平行鏈去調用以及提供數據給其他的平行鏈,還可以利用到波卡對應的跨鏈優勢。
還有,也可以搭建一個單獨的Substrate的鏈。未來通過某種方式橋接到一些平行鏈上面,那么通過平行鏈就可以將自己鏈的數據與其他平行鏈進行溝通。
大致的話通過以上三種方式,再加上拍賣平行鏈插槽,然后接入波卡。一共四種方式來接入到波卡的系統里面。
昨天我在文章中寫了傳統投資機構投資比特幣的邏輯,有朋友留言:“以太坊會不會是下一個比特幣”?看到這條留言我突然想到這樣一個問題:投資機構會不會也像買比特幣一樣這樣大規模地買入以太坊?實際上已經有.
1900/1/1 0:00:00經歷了整整一個夏天的 DeFi 流動性挖礦熱浪。現在潮水退去,我們觀察到 DeFi 在這輪沖刷后更加耀眼,市場規模非但沒有收縮,反而在百尺竿頭更進一步。我們期待 DeFi 未來的無限可能.
1900/1/1 0:00:00盼望著,盼望著,鴿王Filecoin主網終于要來了。Filecion主網將于區塊高度達到148888時正式啟用,預測區塊高度在10月15日左右達標,啟用主網.
1900/1/1 0:00:00致CVT的全球用戶與社區成員:此鏈接為26號大會直播鏈接: http://b.u.mgd5.com/c/-rca/px_7/index.html臨近CyberVein三周年之際.
1900/1/1 0:00:00在11月2日上線后僅幾個小時,Axion Network代幣AXN的價格暴跌了100%。這次價格暴跌披露了其存在的漏洞,下文是CertiK安全審計團隊針對此事件的完整分析.
1900/1/1 0:00:00比特幣在第43周出現了一些令人印象振奮的漲幅,超過了13000美元,并持續保持在這一價位直至本周。其鏈上基本面依然強勁,似乎偏離了傳統金融市場的趨勢.
1900/1/1 0:00:00