灰度ETH信託什麼時候開的
Ⅰ 北京市首個央行數字貨幣應用場景落地,數字人民幣會全面推廣嗎
政策法規
Ⅱ 灰度的GBTC是什麼意思
灰度比特幣信託也就是GBTC,他是是金融工具中的一種,投資者和持有GBTC的人,可以在持有大量比特幣的信託基金中交易股票,這釋放出了一種信號,就是目前區塊鏈世界已經和傳統的股票市場有了千絲萬縷的聯系。GBTC的價格會和比特幣的價格有關聯,但是也不完全是錨定比特幣的價格,GBTC是非常神奇的
同時,在Grayscale裡面,除了GBTC以外,還有一些其他的產品可以交易,價格是錨定以太坊、萊特幣、比特幣現金等等的這些加密貨幣,已然成為了不小的規模。
那麼GBTC存在的價值到底在哪兒?又怎麼解讀它的意義呢?
股市和幣市是2個不同的市場,雖然他們之前有關聯,但是又不完全相同,想在傳統的股票市場投資區塊鏈的數字貨幣,在以往,是不可行的。但是現在有個新的方式,就是灰度比特幣信託(GBTC),這樣使我們在股票市場就能夠參與比特幣的交易。原理是灰度比特幣信託(GBTC)持有了大量的比特幣,灰度比特幣信託(GBTC)的價值接近於比特幣的價值,會跟隨比特幣的價格變化而變化。
目前看來,灰度比特幣信託有著65億美金的比特幣,而且是私人投資的,灰度比特幣信託是美國的一家公司,目前這個體量來看,已經算是世界上最大的購買者了,2013年推出,迄今7年時間,發展速度非常快
灰度比特幣信託(GBTC)的運作方式詳解:
當有投資者看重GBTC,想要大量購買,就可以搶基金會投資資金,基金會的資金,投資者即可用來大量的購買比特幣,這些比特幣在灰度比特幣信託(GBTC)在證卷交易所上市以後,任何在股市開戶的投資者都可以在交易所交易GBTC,需要申明的是,GBTC的價格跟隨BTC波動,價格接近於BTC,但是又不完全就是BTC,兩個系統之間的微妙影響力決定了這個特性。目前來看,GBTC的價格要高於BTC,存在一定的溢價,對於前期的投資者來說,溢價意味著獲利,但是對於現在的投資者來說,溢價增加了目前投資的風險
為什麼我們不直接購買比特幣,而要買灰度比特幣信託(GBTC)呢?
1,不用考慮比特幣的存儲之類的安全問題
2,不用考慮大體量持有的合法性,已經稅務方面的優惠性
3,比特幣不能和傳統的股票直接交易,但是GBTC可以
Ⅲ 什麼是比特幣投資信託(gbtc),sec介入之後發生了什麼
在股票市場上有一種投資比特幣的方式:比特幣信託(GBTC)。這是讓投資者能夠在持有大量比特幣的信託基金中交易股票的幾種金融工具之一,每隻股票的定價都接近比特幣的價格。
截至 2020 年 10 月,灰度比特幣信託代表著私人投資的 65 億美元比特幣資產。灰度是一家美國加密投資公司,是世界上最大的比特幣購買者之一,於 2013 年 9 月推出該信託基金。它的交易代碼為「GBTC」。
根據 Bitcointreasuries.org 的數據,灰度比特幣信託持有 456,537 枚比特幣,在上市公司持有的 786,059 枚比特幣中佔比 58%。
灰度比特幣信託基金因其快速發展多次登上新聞頭條。2020 年 6 月 9 日,該信託基金持有 384,953 比特幣,在四個半月內增持了大約 70 枚。
【拓展資料】
灰度比特幣信託基金一直占據新聞頭條。下面是它的工作原理,以及它對加密資產領域的意義。
灰度比特幣信託是一種金融工具,使投資者可以交易持有大量比特幣的信託中的股票。
基金中的股票追蹤比特幣的價格,但只是大致而已。
Grayscale還提供了其他幾種交易所交易產品,跟蹤以太坊,比特幣現金和萊特幣等。
有一種方法可以直接在股票市場上投資比特幣:灰度比特幣信託基金(GBTC)。它是幾種這樣的金融工具之一,使投資者能夠在持有大量比特幣的信託基金中交易股票,每股股票的定價接近比特幣的價格。
截至2020年10月,灰度比特幣信託代表著65億美元的私人投資比特幣資產。美國密碼投資公司Greyscale是世界上最大的比特幣買家之一,該公司於2013年9月推出了該信託基金。它的交易代碼是「GBTC」。
根據Bitcointreasuries.org的數據,灰度比特幣信託基金持有456,537枚比特幣,占上市公司持有的786,059枚比特幣的58%。
Ⅳ 灰度是什麼公司
2014年,SecondMarket公司創始人BarrySilbert將這只比特幣投資基金從原公司中脫離出來,成立了灰度投資公司(GrayscaleInvestments)。
2015年,灰度投資公司被歸並到新成立的數字貨幣集團(DigitalCurrencyGroup,簡稱DCG)旗下。DCG不僅僅專注於數字貨幣和區塊鏈的投資,同時也是一個初創企業的孵化器。DCG旗下除了灰度投資公司外,還有加密貨幣場外交易經紀商Genesis、區塊鏈新聞資訊網站CoinDesk兩家子公司,以及投資的150多個其他區塊鏈公司/項目。
經過多年的發展,灰度投資公司已經成為全球最大的加密貨幣資產管理公司,旗下的加密貨幣信託規模已經達到25.8億美元。
(4)灰度ETH信託什麼時候開的擴展閱讀:
2013年,創始人BarrySilbert說服了SecondMarket公司的董事會,拿出一部分資金成立了名為BitcoinInvestmentTrust的比特幣投資基金,這只基金就是灰度投資公司比特幣信託(GrayscaleBitcoinTrust)的前身。直到2017年9月,灰度投資公司的比特幣信託基金才開始出現爆發式增長。
它已經成為全球最大的比特幣投資信託基金,擁有的比特幣數量超過40.85萬枚,將近比特幣總量的2%。除了比特幣信託基金,灰度投資公司還推出了BCH、ETH、ETC、Horizen、LTC、XLM、XRP、ZEC的信託基金,以及包含主流幣種的復合型加密貨幣信託基金(GrayscaleDigitalLargeCapFund)。灰度投資公司的加密貨幣信託產品,為機構用戶購買加密貨幣提供了便利。
Ⅳ 灰度3月1日持倉多少
灰度信託持倉量
BTC
總計持有:655732BTC
灰度BTC單價:$45610.03
當前溢價率:-2.4%
24H持倉變化: 0BTC
灰度持倉佔比: 3.48%
---------------
LTC
總計持有:1444783LTC
灰度LTC單價:$3287.10
當前溢價率:+1530.5%
24H持倉變化: 0LTC
灰度持倉佔比: 1.98%
---------------
ETH
總計持有:3171465ETH
灰度ETH單價:$1471.36
當前溢價率:+1.3%
24H持倉變化: 0ETH
灰度持倉佔比: 2.56%
---------------
BCH
總計持有:288025BCH
灰度BCH單價:$3152.39
當前溢價率:+550.6%
24H持倉變化: 0BCH
灰度持倉佔比: 1.44%
---------------
ETC
總計持有:12275298ETC
灰度ETC單價:$15.65
當前溢價率:+46.8%
24H持倉變化: 0ETC
灰度持倉佔比: 10.57%
---------------
ZEC
總計持有:290657ZEC
灰度ZEC單價:--
當前溢價率:--
24H持倉變化: 0ZEC
灰度持倉佔比: 3.25%
---------------
ZEN
總計持有:598642ZEN
灰度ZEN單價:--
當前溢價率:--
24H持倉變化: 0ZEN
灰度持倉佔比: 6.26%
---------------
XLM
總計持有:56453313XLM
灰度XLM單價:--
當前溢價率:--
24H持倉變化: 0XLM
灰度持倉佔比: 0.25%
---------------
XRP
總計持有:0XRP
灰度XRP單價:--
當前溢價率:--
24H持倉變化: 0XRP
灰度持倉佔比: 0.00%
鏈喬教育在線旗下學碩創新區塊鏈技術工作站是中國教育部學校規劃建設發展中心開展的「智慧學習工場2020-學碩創新工作站 」唯一獲準的「區塊鏈技術專業」試點工作站。專業站立足為學生提供多樣化成長路徑,推進專業學位研究生產學研結合培養模式改革,構建應用型、復合型人才培養體系。
Ⅵ 幣圈瘋狂!比特幣首次突破23000美元,誰是背後推手投資者還能進場嗎
近一個月,比特幣幣值從1.8萬美元狂奔到2萬美元,一度突破2.3萬美元,漲勢如虹。
受訪人士提醒,隨著幣值的沖高,市場的狂熱投資者陸續進入FOMO狀態,在不斷推高比特幣市值的同時,也讓回調的風險越來越大。投資者應保持冷靜,做好盈利策略的同時注意規避風險。
2.1萬美元、2.2萬美元、2.3萬美元……比特幣 歷史 性站上2萬美元!
緊接著,幣圈上演了一幕幕「真香」現場:「去年有個人指著我鼻子說BTC(比特幣)是騙人的,昨晚他來找我問如何進場。」
至於後市行情,多位專家表示,隨著幣值的沖高,市場的狂熱投資者陸續進入FOMO(害怕錯過機會)狀態,在不斷推高比特幣市值的同時,也讓回調的風險越來越大。投資者應保持冷靜,做好盈利策略的同時注意規避風險。
數據顯示,比特幣12月16日首度突破2萬美元,16日23時20分,比特幣交易價格漲至20670美元,日內漲幅高達6.51%,創 歷史 新高;較今年3月的年內低谷增長了430%以上,較今年初累計上漲近200%,市值接近4000億美元。比特幣站上 歷史 高位也帶動其他虛擬幣幣值上漲。
突破2萬美元新高之後,比特幣幣值在12月17日一再刷新,最高一度漲超2.3萬美元。截至12月17日18時45分,比特幣報於2.25萬美元。
實際上,今年11月以來,比特幣一直在高位盤旋,屢次逼近2萬美元。11月18日突破1.8萬美元,11月30日一度漲至19698美元。12月份前半個月稍有回落,但也保持在1.8萬美元上方。
長期來看,在2013年的時候,比特幣沖高到1000美元,之後大回撤到150美元。在2017年12月,比特幣的價格上漲至接近2萬美元時,當時比特幣總市值達到3288.9億美元。然而,之後的一年卻遭遇了大跌,跌至近3000美元。
數據顯示,MicroStrategy在2020年8月至9月期間以4.25億美元買入38250枚比特幣。Square在10月購買了價值5000萬美元的比特幣。灰度信託數字資產管理總規模已達近140億美元。灰度基金旗下的GBTC數字資產總持倉量已經接近57萬枚,相較於6月初的36萬枚持倉量,不到半年的時間增長了58.3%。
10月21日,擁有超過3億活躍用戶的PayPal宣布將允許用戶使用其應用買賣和持有比特幣等少數虛擬貨幣,並在11月正式向符合條件的美國用戶開放了加密貨幣服務。據投資區塊鏈和數字貨幣領域的對沖基金Pantera Capital估算,PayPal上線比特幣業務三周內,其客戶買入的比特幣已經約占市場新供應幣的70%。
12月,全球最大對沖基金橋水的創始人達利歐表示,過去十年,比特幣和其他數字貨幣已經成為一種類黃金資產替代品。比特幣與黃金等供應有限的流動財富存儲方式既有相似之處,也有不同之處,因此可作為黃金的一種分散投資。
芝加哥商業交易所集團(CME)12月16日宣布,將在2021年2月8日上線以太坊(ETH)期貨產品。CME在2017年市場周期的高峰期推出了比特幣期貨合約,打破了加密衍生品世界的格局。根據The Block的數據,其比特幣期貨合約的未平倉合約已超過10億美元,這使其成為最大的加密貨幣期貨市場之一。
「隨著越來越多大機構進入數字資產投資領域,全球數字資產交易領域將走向主流化、合規化、機構化,這是不可逆轉的趨勢。更多的傳統金融巨頭全面擁抱比特幣等數字資產並強勢入局是行業大勢所趨,也給市場帶來了海量資金入場的預期。」於佳寧分析指出。
比特幣創新高之後,後市行情怎麼走?
劉峰預計,隨著幣價創新高,市場的狂熱投資者陸續進入FOMO狀態,在不斷推高比特幣市值的同時,也讓回調的風險越來越大。作為投資者應在這種FOMO心態中保持冷靜,做好盈利策略的同時注意規避風險,做好保護自己資產的舉措。
加密貨幣金融機構Nexo的聯席創始人兼管理合夥人Antoni Trenchev則表示,「我們有了新的分水嶺,下一個目標整數關口是30000美元,這是比特幣新篇章的開始」。
此外,倫敦數字資產交易所Luno首席執行官Marcus Swanepoel表示,比特幣可能會繼續上沖至20000美元至25000美元區間,隨後新一輪的大幅拋售將出現,比特幣可能會回調20%至30%。
於佳寧指出,「比特幣價格上漲是周期的紅利,它的價值本質來源全球性共識的力量。在未來我們將看到有更多主流數字資產被主流資產所接納。同時,在全球資產數字化的進程中,也會涌現越來越多的新興數字資產走向主流,而這些數字資產都將以區塊鏈技術為基礎。在未來,區塊鏈思維也將成為全 社會 基礎性的思維方式。」
Ⅶ 馬斯克持有比特幣,以太坊,狗狗幣。馬斯克是幣圈風向標嗎
SpaceX 擁有 比特幣 ,Elon Musk 和 Nic Carter 認為 BTC 正在變得更環保
狗狗幣 (DOGE) 的支持者和比特幣 (BTC)的好朋友埃隆·馬斯克 (Elon Musk)於 7 月 21 日首次透露,他的航空航天公司 SpaceX 擁有數量不詳的比特幣。
「我確實擁有比特幣;特斯拉擁有比特幣;SpaceX 擁有比特幣,」他說。
馬斯克在「The ? Word」(一個致力於比特幣的虛擬活動)上與 Twitter 首席執行官 Jack Dorsey 和 Ark Invest 首席執行官 Cathie Wood 一起發表講話,這位不穩定的 科技 億萬富翁暗示特斯拉即將再次接受加密貨幣用於采礦的可再生能源的百分比正在增加。
特斯拉今年早些時候以 15 億美元進軍比特幣,引發了比特幣價格的大幅上漲。然而,特斯拉在 5 月份因環境問題暫停使用比特幣作為支付方式,這似乎壓低了比特幣的價格,比特幣在過去兩個月中暴跌了約 40%。
現在,在采礦禁令之後,中國煤電的哈希率正在下降,馬斯克似乎正在再次熱身於數字黃金。馬斯克曾表示,在他對采礦可持續性進行更多「盡職調查」並確認其由 50% 或更多可再生能源支持後,特斯拉可能會重新進入市場。
有人想知道這需要什麼盡職調查,以及為什麼他在 15 億美元的特斯拉 BTC 購買之前沒有這樣做。
馬斯克還首次透露,他持有以太坊 (ETH),並毫不意外地重申了他對受模因啟發的狗狗幣的支持。
「我個人確實擁有一些以太坊,當然還有狗狗幣,」他說。
第二季度每日狗狗幣交易量飆升至近 $1B
談到馬斯克最喜歡的加密貨幣,狗狗幣的交易量在 2021 年第二季度增長了 13 倍以上,每天接近 10 億美元。
根據 Coinbase 匯編並由 報道的數據,狗狗幣交易量在 4 月至 6 月期間飆升了 1,250%,本季度平均每天有 9.95 億美元的 DOGE 易手。
相比之下,狗狗幣 2021 年第一季度的平均每日交易量為 7400 萬美元。
雖然這些數字肯定會在火眼金睛的狗狗幣社區中引起炒作,但對於 Coinbase 來說,頂級犬幣的主題可能是一個敏感的話題。
一位 Coinbase 用戶已提起集體訴訟,要求賠償 500 萬美元,因為據稱狗狗幣活動具有誤導性。
根據法庭文件,原告大衛蘇斯基表示,他被欺騙交易了 100 美元的狗狗幣,以參加 Coinbase 上 120 萬美元的抽獎活動。該訴訟稱,Coinbase 未能傳達一個人可以在不購買 100 美元狗狗幣的情況下參加抽獎活動。
以太坊必須在 DeFi 退化的 DApp 之外進行創新:Vitalik Buterin
以太坊聯合創始人兼首席開發人員 Vitalik Buterin 敦促以太坊社區在去中心化金融或 DeFi 的范圍之外進行創新。
Buterin 在 7 月 21 日在巴黎舉行的以太坊社區會議上發表主題演講時,將非金融公用事業描述為「通用區塊鏈願景中最有趣的部分」。
這位 27 歲的年輕人概述了以太坊的幾個非金融應用,包括去中心化社交媒體、身份驗證和證明,以及追溯公共產品資金。
這位以太坊聯合創始人度過了忙碌的一周,在以太坊會議上發言後,他也出現在了Ashton Kutcher 和 Mila Kunis 的客廳。當然,他並沒有擅自闖入,而是作為 Kunis 的 NFT 項目「Stoner Cats」的宣傳的一部分出現在那裡。
Buterin 對以太坊的基本組成部分進行了冗長的解釋,並闡明了智能合約協議與比特幣等「單一用途」鏈的不同之處。
Grayscale 將目光投向機構 DeFi 基金
雖然 Buterin 的目光超越了金融的去中心化界限,但數字資產管理巨頭 Grayscale 正在尋求在該領域獲得曝光。
7 月 19 日,Grayscale 首席執行官 Michael Sonnenshein 宣布了一項針對 DeFi 資產的新投資工具。
在接受 CNBC 的 Squawk Box 采訪時,這位 CEO 插話宣布了 Grayscale 的 DeFi 基金和指數計劃。這位灰度首席執行官詳細說明了新產品的用途,表示該基金將為其機構客戶提供對 Uniswap 和 Aave 等 DeFi 資產的敞口。
同一周,Sonnenshein 表示,他認為美國與其首個比特幣交易所交易基金(ETF)只有「幾個成熟點」。
在過去多次拒絕 BTC ETF 以及正在考慮的 13 份 ETF 申請之後,Sonnenshein 並沒有被嚇倒,並表示該公司「100% 致力於」在條件合適時將其比特幣產品灰度比特幣信託轉變為 ETF。
美國立法者不希望奧運運動員在 2022 年奧運會上使用數字人民幣
盡管據報道大多數日本公民因與大流行相關的擔憂而希望取消奧運會,但該活動仍在繼續。
然而,美國政府已經開始關注 2022 年北京冬奧會,三名美國參議員簽署了一封信,敦促奧運會官員在本周早些時候即將舉行的賽事期間禁止美國運動員使用數字人民幣。
在 7 月 19 日致美國奧林匹克和殘奧會委員會主席 Susanne Lyons 的一封信中,共和黨參議員 Marsha Blackburn、Roger Wicker 和 Cynthia Lummis(也是 BTC 的支持者)要求官員阻止美國運動員使用或接受數字人民幣。
參議員們斷言,運動員使用央行 數字貨幣 的行為可以被中國人民銀行「追蹤和追蹤」。
參議員們表示,中國政府最近推出了數字人民幣的新功能,使官員能夠「知道某人購買了什麼以及在哪裡購買的確切細節」。
如果奧運官員批准該請求,不幸的是,中國將不得不部署其他方法來追蹤和追蹤進入該國的美國運動員。
在本周結束,比特幣是32,580 $,在醚$ 2,070和XRP在$ 0.60。根據 數據,總市值為 1.35 萬億美元。
在最大的 100 種加密貨幣中,本周排名前三的 山寨幣 收益分別是 Telcoin(TEL)的 26.82%、SushiSwap(SUSHI)的 26.17% 和Axie Infinity(AXS)的 23.12%。
本周排名前三的山寨幣輸家是 Mdex(MDX)-25.55%、THORChain(RUNE)-18.98% 和 Theta(XDC)-11.26%。
最難忘的語錄
埃隆馬斯克,特斯拉首席執行官
以太坊聯合創始人Vitalik Buterin
Paxos,穩定幣供應商
世界著名當代藝術家達明·赫斯特
美國證券交易委員會主席加里·詹斯勒
Irakli Beridze,聯合國區域間犯罪和司法研究所人工智慧和機器人中心主任
Osprey Funds 首席執行官Greg King
#比特幣[超話]# #數字貨幣#
Ⅷ 求用vc++編程實現顯示灰度直方圖的詳細步驟,越詳細越好
步驟和程序:
打開VC程序——文件——新建——工程中的MFC AppWizard(exe),在工程下面的框中輸入工程名(假定工程名為111),點確定——選多重文檔,點下一個——後面都點下一個直到完成確定,基本框架就完成了,下面就加代碼。
這時VC界面上左邊框的下面有三個按鈕:ClassView、ResourceView和FileView,ClassView裡面是工程111的類:CAdoutDlg、CChildFrame、CMy111App、CMy111Doc、CMy111View和Globals;點ResourceView裡面是資源類:Accelerator、Dialog、Icon、Menu、String Table、Toolbar和Version;點開FileView裡面是文件類:Source File、Header Files、Resource Files和ReadMe.txt。
點界面的「工程」按鈕——添加工程——新建——選C++ Source File,在文件下面的框里輸入文件名(如DIBAPI),點「結束」,這樣在FileView中的Source Files裡面就多了一個DIBAPI.cpp文件,所有的代碼都加在該文件中。再點界面的「工程」按鈕——添加工程——新建——選C/C++ Header File,在文件下面的框里輸入文件名(和前面的文件名必須一致),點「結束」,這樣在FileView中的Header Files裡面就多了一個DIBAPI.h文件,該文件是DIBAPI.cpp的頭文件。
點開DIBAPI.h文件,裡面是空白的,把如下代碼考入文件中:
//DIBAPI.h
#ifndef _INC_DIBAPI
#define _INC_DIBAPI
DECLARE_HANDLE(HDIB);
#define PALVERSION 0x300
#define IS_WIN30_DIB(lpbi) ((*(LPDWORD)(lpbi))==sizeof(BITMAPINFOHEADER))
#define RECTWIDTH(lpRect) ((lpRect)->right-(lpRect)->left)
#define RECTHEIGHT(lpRect) ((lpRect)->bottom-(lpRect)->top)
#define WIDTHBYTES(bits) (((bits)+31)/32*4)
#define DIB_HEADER_MARKER ((WORD)('M'<<8)|'B')
BOOL WINAPI PaintDIB(HDC,LPRECT,HDIB,LPRECT,CPalette* pPal);
BOOL WINAPI CreateDIBPalette(HDIB hDIB,CPalette* cPal);
LPSTR WINAPI FindDIBBits(LPSTR lpbi);
DWORD WINAPI DIBWidth(LPSTR lpDIB);
DWORD WINAPI DIBHeight(LPSTR lpDIB);
WORD WINAPI PaletteSize(LPSTR lpbi);
WORD WINAPI DIBNumColors(LPSTR lpbi);
HGLOBAL WINAPI CopyHandle(HGLOBAL h);
BOOL WINAPI SaveDIB(HDIB hDib,CFile& file);
HDIB WINAPI ReadDIBFile(CFile& file);
//在此處輸入自己的函數聲明
#endif//!_INC_DIBAPI
上面這些函數是實現圖像的讀取、存儲等圖像處理的基本功能的,你將自己需要的函數也輸入到「//在此處輸入自己的函數聲明」的下面。
點開DIBAPI.cpp文件,裡面是空白的,將如下代碼加入其中:
//DIBAPI.cpp
#include "stdafx.h"
#include "DIBAPI.h"
WORD WINAPI DIBNumColors(LPSTR lpbi)
{
WORD wBitCount;
if(IS_WIN30_DIB(lpbi))
{
DWORD dwClrUsed;
dwClrUsed=((LPBITMAPINFOHEADER)lpbi)->biClrUsed;
if(dwClrUsed)
return (WORD)dwClrUsed;
}
if(IS_WIN30_DIB(lpbi))
wBitCount=((LPBITMAPINFOHEADER)lpbi)->biBitCount;
else
wBitCount=((LPBITMAPCOREHEADER)lpbi)->bcBitCount;
switch(wBitCount)
{
case 1:
return 2;
case 4:
return 16;
case 8:
return 256;
default:
return 0;
}
}
WORD WINAPI PaletteSize(LPSTR lpbi)
{
if(IS_WIN30_DIB(lpbi))
return (WORD)(DIBNumColors(lpbi)*sizeof(RGBQUAD));
else
return (WORD)(DIBNumColors(lpbi)*sizeof(RGBTRIPLE));
}
LPSTR WINAPI FindDIBBits(LPSTR lpbi)
{
return (lpbi+*(LPDWORD)lpbi+::PaletteSize(lpbi));
}
DWORD WINAPI DIBWidth(LPSTR lpDIB)
{
LPBITMAPINFOHEADER lpbmi;
LPBITMAPCOREHEADER lpbmc;
lpbmi=(LPBITMAPINFOHEADER)lpDIB;
lpbmc=(LPBITMAPCOREHEADER)lpDIB;
if(IS_WIN30_DIB(lpDIB))
return lpbmi->biWidth;
else
return (DWORD)lpbmc->bcWidth;
}
DWORD WINAPI DIBHeight(LPSTR lpDIB)
{
LPBITMAPINFOHEADER lpbmi;
LPBITMAPCOREHEADER lpbmc;
lpbmi=(LPBITMAPINFOHEADER)lpDIB;
lpbmc=(LPBITMAPCOREHEADER)lpDIB;
if(IS_WIN30_DIB(lpDIB))
return lpbmi->biHeight;
else
return (DWORD)lpbmc->bcHeight;
}
BOOL WINAPI PaintDIB(HDC hDC,LPRECT lpDCRect,HDIB hDIB,LPRECT lpDIBRect,CPalette* pPal)
{
LPSTR lpDIBHdr;
LPSTR lpDIBBits;
BOOL bSuccess=FALSE;
HPALETTE hPal=NULL;
HPALETTE hOldPal=NULL;
if(hDIB==NULL)
return FALSE;
lpDIBHdr=(LPSTR)::GlobalLock((HGLOBAL)hDIB);
lpDIBBits=FindDIBBits(lpDIBHdr);
if(pPal!=NULL)
{
hPal=(HPALETTE)pPal->m_hObject;
hOldPal=::SelectPalette(hDC,hPal,TRUE);
}
::SetStretchBltMode(hDC,COLORONCOLOR);
if((RECTWIDTH(lpDCRect)==RECTWIDTH(lpDIBRect))&&(RECTHEIGHT(lpDCRect)==RECTHEIGHT(lpDIBRect)))
{
bSuccess=::SetDIBitsToDevice(hDC,lpDCRect->left,lpDCRect->top,RECTWIDTH(lpDCRect),RECTHEIGHT(lpDCRect),lpDIBRect->left,\
(int)DIBHeight(lpDIBHdr)-lpDIBRect->top-RECTHEIGHT(lpDIBRect),0,(WORD)DIBHeight(lpDIBHdr),\
lpDIBBits,(LPBITMAPINFO)lpDIBHdr,DIB_RGB_COLORS);
}
else
{
bSuccess=::StretchDIBits(hDC,lpDCRect->left,lpDCRect->top,RECTWIDTH(lpDCRect),RECTHEIGHT(lpDCRect),lpDIBRect->left,\
lpDIBRect->top,RECTWIDTH(lpDIBRect),RECTHEIGHT(lpDIBRect),\
lpDIBBits,(LPBITMAPINFO)lpDIBHdr,DIB_RGB_COLORS,SRCCOPY);
}
::GlobalUnlock((HGLOBAL)hDIB);
if(hOldPal)
::SelectPalette(hDC,hOldPal,TRUE);
GlobalUnlock(hDIB);
return bSuccess;
}
BOOL WINAPI CreateDIBPalette(HDIB hDIB,CPalette* pPal)
{
LPLOGPALETTE lpPal;
HANDLE hLogPal;
HPALETTE hPal=NULL;
LPSTR lpbi;
LPBITMAPINFO lpbmi;
LPBITMAPCOREINFO lpbmc;
BOOL bWinStyleDIB;
int i;
WORD wNumColors;
BOOL bResult=FALSE;
if(hDIB==NULL)
return FALSE;
lpbi=(LPSTR)::GlobalLock((HGLOBAL)hDIB);
lpbmi=(LPBITMAPINFO)lpbi;
lpbmc=(LPBITMAPCOREINFO)lpbi;
wNumColors=DIBNumColors(lpbi);
bWinStyleDIB=IS_WIN30_DIB(lpbi);
if(wNumColors!=0)
{
hLogPal=::GlobalAlloc(GHND,sizeof(LOGPALETTE)+sizeof(PALETTEENTRY)*wNumColors);
if(hLogPal==0)
{
::GlobalUnlock((HGLOBAL)hDIB);
return FALSE;
}
lpPal=(LPLOGPALETTE)::GlobalLock(hLogPal);
lpPal->palVersion=PALVERSION;
lpPal->palNumEntries=(WORD)wNumColors;
bWinStyleDIB=IS_WIN30_DIB(lpbi);
for(i=0;i<(int)wNumColors;i++)
{
if(bWinStyleDIB)
{
lpPal->palPalEntry[i].peRed=lpbmi->bmiColors[i].rgbRed;
lpPal->palPalEntry[i].peGreen=lpbmi->bmiColors[i].rgbGreen;
lpPal->palPalEntry[i].peBlue=lpbmi->bmiColors[i].rgbBlue;
lpPal->palPalEntry[i].peFlags=0;
}
else
{
lpPal->palPalEntry[i].peRed=lpbmc->bmciColors[i].rgbtRed;
lpPal->palPalEntry[i].peGreen=lpbmc->bmciColors[i].rgbtGreen;
lpPal->palPalEntry[i].peBlue=lpbmc->bmciColors[i].rgbtBlue;
lpPal->palPalEntry[i].peFlags=0;
}
}
bResult=pPal->CreatePalette(lpPal);
::GlobalUnlock((HGLOBAL)hLogPal);
::GlobalFree((HGLOBAL)hLogPal);
}
::GlobalUnlock((HGLOBAL)hDIB);
return bResult;
}
HGLOBAL WINAPI CopyHandle(HGLOBAL h)
{
if(h==NULL)
return NULL;
DWORD dwLen=::GlobalSize((HGLOBAL)h);
HGLOBAL hCopy=::GlobalAlloc(GHND,dwLen);
if(hCopy!=NULL)
{
void* lpCopy=::GlobalLock((HGLOBAL)hCopy);
void* lp=::GlobalLock((HGLOBAL)h);
memcpy(lpCopy,lp,dwLen);
::GlobalUnlock(hCopy);
::GlobalUnlock(h);
}
return hCopy;
}
BOOL WINAPI SaveDIB(HDIB hDib,CFile& file)
{
BITMAPFILEHEADER bmfHdr;
LPBITMAPINFOHEADER lpBI;
DWORD dwDIBSize;
if(!hDib)
return FALSE;
lpBI=(LPBITMAPINFOHEADER)::GlobalLock((HGLOBAL)hDib);
if(lpBI==NULL)
return FALSE;
if(!IS_WIN30_DIB(lpBI))
{
::GlobalUnlock((HGLOBAL)hDib);
return FALSE;
}
bmfHdr.bfType=DIB_HEADER_MARKER;
dwDIBSize=*(LPDWORD)lpBI+::PaletteSize((LPSTR)lpBI);
if((lpBI->biCompression==BI_RLE8)||(lpBI->biCompression==BI_RLE4))
dwDIBSize+=lpBI->biSizeImage;
else
{
DWORD dwBmBitsSize;
dwBmBitsSize=WIDTHBYTES((lpBI->biWidth)*((DWORD)lpBI->biBitCount))*lpBI->biHeight;
dwDIBSize+=dwBmBitsSize;
lpBI->biSizeImage=dwBmBitsSize;
}
bmfHdr.bfSize=dwDIBSize+sizeof(BITMAPFILEHEADER);
bmfHdr.bfReserved1=0;
bmfHdr.bfReserved2=0;
bmfHdr.bfOffBits=(DWORD)sizeof(BITMAPFILEHEADER)+lpBI->biSize+::PaletteSize((LPSTR)lpBI);
TRY
{
file.Write((LPSTR)&bmfHdr,sizeof(BITMAPFILEHEADER));
file.WriteHuge(lpBI,dwDIBSize);
}
CATCH(CFileException,e)
{
::GlobalUnlock((HGLOBAL)hDib);
THROW_LAST();
}
END_CATCH
::GlobalUnlock((HGLOBAL)hDib);
return TRUE;
}
HDIB WINAPI ReadDIBFile(CFile& file)
{
BITMAPFILEHEADER bmfHeader;
DWORD dwBitsSize;
HDIB hDIB;
LPSTR pDIB;
dwBitsSize=file.GetLength();
if(file.Read((LPSTR)&bmfHeader,sizeof(bmfHeader))!=sizeof(bmfHeader))
return NULL;
if(bmfHeader.bfType!=DIB_HEADER_MARKER)
return NULL;
hDIB=(HDIB)::GlobalAlloc(GMEM_MOVEABLE|GMEM_ZEROINIT,dwBitsSize);
if(hDIB==0)
return NULL;
pDIB=(LPSTR)::GlobalLock((HGLOBAL)hDIB);
if(file.ReadHuge(pDIB,dwBitsSize-sizeof(BITMAPFILEHEADER))!=dwBitsSize-sizeof(BITMAPFILEHEADER))
{
::GlobalUnlock((HGLOBAL)hDIB);
::GlobalFree((HGLOBAL)hDIB);
return NULL;
}
::GlobalUnlock((HGLOBAL)hDIB);
return hDIB;
}
//在此處輸入自己的函數定義
上面是DIBAPI.h頭文件中聲明的函數的定義,你將自己的函數定義加到「//在此處輸入自己的函數定義」後面。
下面加相應的消息映射函數,點Ctrl+W鍵,會出現MFC ClassWizard對話框,點Message Maps,在Class name下面的框中選擇CMy111Doc,在Messages裡面選中OnOpenDocument,然後點擊Add Function按鈕就加入了相應的消息映射函數,同樣的方法以此加入OnSaveDocument、DeleteContents、CanCloseFrame相應的消息函數,點「確定」即可。
點開111Doc.cpp文件,裡面有相應的消息映射函數定義位置,在函數CMy111Doc::CMy111Doc()里輸入以下代碼:
m_refColorBKG=0x00808080;
m_hDIB=NULL;
m_palDIB=NULL;
m_sizeDoc=CSize(1,1);
在函數CMy111Doc::~CMy111Doc()里輸入以下代碼:
if(m_hDIB!=NULL)
::GlobalFree((HGLOBAL)m_hDIB);
if(m_palDIB!=NULL)
delete m_palDIB;
在函數BOOL CMy111Doc::OnOpenDocument(LPCTSTR lpszPathName)里/ TODO: Add your specialized creation code here下面添加如下代碼:
CFile file;
CFileException fe;
if(!file.Open(lpszPathName,CFile::modeRead|CFile::shareDenyWrite,&fe))
{
ReportSaveLoadException(lpszPathName,&fe,FALSE,AFX_IDP_FAILED_TO_OPEN_DOC);
return FALSE;
}
DeleteContents();
BeginWaitCursor();
TRY
{
m_hDIB=::ReadDIBFile(file);
}
CATCH(CFileException,eLoad)
{
file.Abort();
EndWaitCursor();
ReportSaveLoadException(lpszPathName,eLoad,FALSE,AFX_IDP_FAILED_TO_OPEN_DOC);
m_hDIB=NULL;
return FALSE;
}
END_CATCH
InitDIBData();
EndWaitCursor();
if(m_hDIB==NULL)
{
CString strMsg;
strMsg="讀取圖像時出錯!可能是不支持該類型的圖像文件!";
MessageBox(NULL,strMsg,NULL,MB_ICONINFORMATION|MB_OK);
return FALSE;
}
SetPathName(lpszPathName);
SetModifiedFlag(FALSE);
在函數BOOL CMy111Doc::OnSaveDocument(LPCTSTR lpszPathName)里// TODO: Add your specialized code here and/or call the base class後面添加如下代碼:
CFile file;
CFileException fe;
if(!file.Open(lpszPathName,CFile::modeCreate|CFile::modeReadWrite|CFile::shareExclusive,&fe))
{
ReportSaveLoadException(lpszPathName,&fe,TRUE,AFX_IDP_INVALID_FILENAME);
return FALSE;
}
BOOL bSuccess=FALSE;
TRY
{
BeginWaitCursor();
bSuccess=::SaveDIB(m_hDIB,file);
file.Close();
}
CATCH(CException,eSave)
{
file.Abort();
EndWaitCursor();
ReportSaveLoadException(lpszPathName,eSave,TRUE,AFX_IDP_FAILED_TO_SAVE_DOC);
return FALSE;
}
END_CATCH
EndWaitCursor();
SetModifiedFlag(FALSE);
if(!bSuccess)
{
CString strMsg;
strMsg="無法保存BMP圖像";
MessageBox(NULL,strMsg,NULL,MB_ICONINFORMATION|MB_OK);
}
點開ClassView,右鍵點擊CMy111Doc類,點Add Member Variable出現添加成員變數對話框,在Variable Type下的框中輸入變數類型名HDIB,在Variable Name中輸入變數名m_hDIB,在Access中選中Public就在CMy111Doc中加入了公共成員變數m_hDIB;同樣加入int類型的m_nColorIndex、COLORREF類型的m_refColorBKG公共成員變數,再添加保護成員變數(在Access中選中Protected)CSize類的m_sizeDoc、CPalette*類的m_palDIB變數。右鍵點擊CMy111Doc類,點Add Member Function出現添加成員函數對話框,在Function Type下的框中輸入函數類型名void,在Function Declaration中輸入函數名InitDIBData(),在Access中選中Public就在CMy111Doc中加入了公共成員函數InitDIBData();同樣方法加入void類型的公共成員函數ReplaceHDIB(HDIB hDIB)。在111Doc.cpp中加入函數的代碼,InitDIBData()里加如下代碼:
if(m_palDIB!=NULL)
{
delete m_palDIB;
m_palDIB=NULL;
}
if(m_hDIB==NULL)
return;
LPSTR lpDIB=(LPSTR)::GlobalLock((HGLOBAL)m_hDIB);
if(::DIBWidth(lpDIB)>INT_MAX||::DIBHeight(lpDIB)>INT_MAX)
{
::GlobalUnlock((HGLOBAL)m_hDIB);
::GlobalFree((HGLOBAL)m_hDIB);
m_hDIB=NULL;
CString strMsg;
strMsg="BMP圖像太大!";
MessageBox(NULL,strMsg,NULL,MB_ICONINFORMATION|MB_OK);
return;
}
m_sizeDoc=CSize((int)::DIBWidth(lpDIB),(int)::DIBHeight(lpDIB));
::GlobalUnlock((HGLOBAL)m_hDIB);
m_palDIB=new CPalette;
if(m_palDIB==NULL)
{
::GlobalFree((HGLOBAL)m_hDIB);
m_hDIB=NULL;
return;
}
if(::CreateDIBPalette(m_hDIB,m_palDIB)==NULL)
{
delete m_palDIB;
m_palDIB=NULL;
return;
}
在函數ReplaceHDIB(HDIB hDIB)中加入如下代碼:
if(m_hDIB!=NULL)
::GlobalFree((HGLOBAL)m_hDIB);
m_hDIB=hDIB;
在CMy111doc.h的
// Attributes
public:
下面加入如下代碼:
HDIB GetHDIB() const
{
return m_hDIB;
}
CPalette* GetDocPalette() const
{
return m_palDIB;
}
CSize GetDocSize() const
{
return m_sizeDoc;
}
注意要在111Doc.h前加上#include "DIBAPI.h"語句(在class CMy111Doc:public CDocument語句前)
下面為CMy111View中的函數 void CMy111View::OnDraw(CDC* pDC)中添加如下代碼:
BeginWaitCursor();
CMy111* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
HDIB hDIB=pDoc->GetHDIB();
if(hDIB!=NULL)
{
LPSTR lpDIB=(LPSTR)::GlobalLock((HGLOBAL)hDIB);
int cxDIB=(int)::DIBWidth(lpDIB);
int cyDIB=(int)::DIBHeight(lpDIB);
::GlobalUnlock((HGLOBAL)hDIB);
CRect rcDIB;
rcDIB.top=rcDIB.left=0;
rcDIB.right=cxDIB;
rcDIB.bottom=cyDIB;
CRect rcDest;
if(pDC->IsPrinting())
{
int cxPage=pDC->GetDeviceCaps(HORZRES);
int cyPage=pDC->GetDeviceCaps(VERTRES);
int cxInch=pDC->GetDeviceCaps(LOGPIXELSX);
int cyInch=pDC->GetDeviceCaps(LOGPIXELSY);
rcDest.top=rcDest.left=0;
rcDest.bottom=(int)(((double)cyDIB*cxPage*cyInch)/((double)cxDIB*cxInch));
rcDest.right=cxPage;
int temp=cyPage-(rcDest.bottom-rcDest.top);
rcDest.bottom+=temp/2;
rcDest.top+=temp/2;
}
else
{
rcDest=rcDIB;
}
::PaintDIB(pDC->m_hDC,&rcDest,pDoc->GetHDIB(),&rcDIB,pDoc->GetDocPalette());
}
EndWaitCursor();
以上是關於圖像打開、顯示、保存的有關步驟和代碼。
在111.cpp文件的InitInstance()函數的ParseCommandLine(cmdInfo);語句下輸入語句
cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
則啟動時不自動打開一個空文檔。
顯示圖像直方圖步驟:
1、 點擊ResourceView,右鍵點擊Dialog,選Insert Dialog 在屬性對話框中將ID改為ID_HIST,對話框名稱改為「直方圖」
2、 在工具欄中點「插入」-「新建類」,輸入類名,並選Base Class為CDialog,Dialog ID為ID_HIST。這樣就將對話框和類聯系起來了,在該對話框中拖入一Edit控制項,將其ID設為IDC_HISTSHOW;
3、 快捷鍵「Ctrl+W」,出現MFC ClassWizard對話框,在Messages欄中分別選WM_INITDIALOG和WM_Paint,再點擊「Add Function」,即將對話框初始化和畫圖函數加入對話框類之中。
4、 在Hist.h文件「public:」下面輸入如下變數定義:
LONG m_lCount[256];
char* m_lpDIBBits;
LONG m_lWidth;
LONG m_lHeight;
int m_iIsDraging;
CDlgIntensity(CWnd* pParent = NULL);
5、 打開Hist.cpp程序,在CHist::OnInitDialog()函數中「// TODO: Add extra initialization here」前將如下代碼拷貝進去:
unsigned char* lpSrc;
LONG i;
LONG j;
6、 在「// TODO: Add extra initialization here」後將如下代碼拷貝進去:
CWnd* pWnd=GetDlgItem(IDC_HISTSHOW);
CRect rect;
GetClientRect(rect);
ClientToScreen(&rect);
for(i=0;i<256;i++)
{
m_lCount[i]=0;
}
LONG lLineBytes;
lLineBytes=WIDTHBYTES(m_lWidth*8);
for(i=0;i<m_lHeight;i++)
{
for(j=0;j<m_lWidth;j++)
{
lpSrc=(unsigned char*)m_lpDIBBits+lLineBytes*i+j;
m_lCount[*(lpSrc)]++;
}
}
m_iIsDraging=0;
7、在CHist::OnPaint()函數「CPaintDC dc(this);」前將如下代碼拷如其中:
CString str;
LONG i;
LONG lMaxCount=0;
LONG m_iLowGray=0;
LONG m_iUpGray=255;
在CHist::OnPaint()函數「// TODO: Add your message handler code here」後將如下代碼拷如其中:
CWnd* pWnd=GetDlgItem(IDC_ HISTSHOW);
CDC* pDC=pWnd->GetDC();
pWnd->Invalidate();
pWnd->UpdateWindow();
pDC->Rectangle(0,0,330,300);
CPen* pPenRed=new CPen;
pPenRed->CreatePen(PS_SOLID,1,RGB(255,0,0));
CPen* pPenBlue=new CPen;
pPenBlue->CreatePen(PS_SOLID,1,RGB(0,0,255));
CPen* pPenGreen=new CPen;
pPenGreen->CreatePen(PS_SOLID,1,RGB(0,255,0));
CGdiObject* pOldPen=pDC->SelectObject(pPenRed);
pDC->MoveTo(10,10);
pDC->LineTo(10,280);
pDC->LineTo(320,280);
str.Format("0");
pDC->TextOut(10,283,str);
str.Format("50");
pDC->TextOut(60,283,str);
str.Format("100");
pDC->TextOut(110,283,str);
str.Format("150");
pDC->TextOut(160,283,str);
str.Format("200");
pDC->TextOut(210,283,str);
str.Format("255");
pDC->TextOut(265,283,str);
for(i=0;i<256;i+=5)
{
if((i&1)==0)
{
pDC->MoveTo(i+10,280);
pDC->LineTo(i+10,284);
}
else
{
pDC->MoveTo(i+10,280);
pDC->LineTo(i+10,282);
}
}
pDC->MoveTo(315,275);
pDC->LineTo(320,280);
pDC->LineTo(315,285);
pDC->MoveTo(10,10);
pDC->LineTo(5,15);
pDC->MoveTo(10,10);
pDC->LineTo(15,15);
for(i=m_iLowGray;i<=m_iUpGray;i++)
{
if(m_lCount[i]>lMaxCount)
{
lMaxCount=m_lCount[i];
}
}
pDC->MoveTo(10,25);
pDC->LineTo(14,25);
str.Format("%d",lMaxCount);
pDC->TextOut(11,26,str);
pDC->SelectObject(pPenGreen);
pDC->MoveTo(m_iLowGray+10,25);
pDC->LineTo(m_iLowGray+10,280);
pDC->MoveTo(m_iUpGray+10,25);
pDC->LineTo(m_iUpGray+10,280);
pDC->SelectObject(pPenBlue);
if(lMaxCount>0)
{
for(i=m_iLowGray;i<=m_iUpGray;i++)
{
pDC->MoveTo(i+10,280);
pDC->LineTo(i+10,281-(int)(m_lCount[i]*256/lMaxCount));
}
}
pDC->SelectObject(pOldPen);
delete pPenRed;
delete pPenBlue;
delete pPenGreen;
8、點開ResourceView中的Menu,出現IDR_MAINFRAME和 IDR_MY111TYPE,雙擊IDR_MY111TYPE就出現了程序界面,有文件、編輯、查看、窗口、幫助按鈕。點「查看」下面的虛線框右鍵——點「屬性」,輸入標題(直方圖),和ID(大寫英文,如ID_VIEW_HIST),這樣就將按鈕和程序通過ID聯系起來了,點擊該按鈕,就會執行相應的程序。下面為該按鈕添加函數:點Ctrl+W ,出現MFC ClassWizard對話框,選Class name為CMy111View,在Object IDs對應的選項中選中設置的ID(如為ID_VIEW_HIST),在Messages選項中選中COMMAND,然後點擊「Add Function」按鈕,選默認設置,就為ID_VIEW_HIST添加了相應的函數OnViewHist()。該函數在111View.cpp文件中定義,在函數void CMy111View:: OnViewHist()添加如下代碼:
// TODO: Add your command handler code here
CMy111Doc* pDoc=GetDocument();
if(pDoc->m_hDIB==NULL)
{
MessageBox("請先打開一幅256色的BMP圖像!","系統提示",MB_ICONINFORMATION|MB_OK);
return;
}
LPSTR lpDIB;
LPSTR lpDIBBits;
lpDIB=(LPSTR)::GlobalLock((HGLOBAL)pDoc->GetHDIB());
lpDIBBits=::FindDIBBits(lpDIB);
if(::DIBNumColors(lpDIB)!=256)
{
MessageBox("目前只支持查看256色點陣圖灰度直方圖!","系統提示",MB_ICONINFORMATION|MB_OK);
::GlobalUnlock((HGLOBAL)pDoc->GetHDIB());
return;
}
BeginWaitCursor();
CHist dlgPara;
dlgPara.m_lpDIBBits=lpDIBBits;
dlgPara.m_lWidth=::DIBWidth(lpDIB);
dlgPara.m_lHeight=::DIBHeight(lpDIB);
// dlgPara.m_iLowGray=0;
// dlgPara.m_iUpGray=255;
if(dlgPara.DoModal()!=IDOK)
{
return;
}
::GlobalUnlock((HGLOBAL)pDoc->GetHDIB());
EndWaitCursor();
Ⅸ 灰度今天的持倉是多少
美東時間2月25日,灰度信託持倉數據變化如下:
灰度BTC信託持倉量增加58.78枚(+0.01%),總持倉量為655752.82 BTC,GBTC溢價率-3.77%;
灰度BCH信託持倉量增加75.31枚(+0.03%),總持倉量為285062.57 BCH,BCHG溢價率536.99%;
灰度LTC信託持倉量增加1592.31枚(+0.11%),總持倉量為1412349.32 LTC,LTCN溢價率1635.44%;
灰度ETH、ETC信託當日未增持,ETHE溢價率-0.05%、ETCG溢價率0.43%。
鏈喬教育在線旗下學碩創新區塊鏈技術工作站是中國教育部學校規劃建設發展中心開展的「智慧學習工場2020-學碩創新工作站 」唯一獲準的「區塊鏈技術專業」試點工作站。專業站立足為學生提供多樣化成長路徑,推進專業學位研究生產學研結合培養模式改革,構建應用型、復合型人才培養體系。
Ⅹ 以太坊和以太經典的區別
關於區塊鏈的可變性。
ETH,假如大部分人同意修改鏈條也就是可變性,那麼就可以修改區塊鏈記錄和合約。
ETC,區塊鏈記錄和合約不可修改,也就是不可篡改性。
下面是關於兩種方法的利弊。
可變性的好處是人們可以適時地改變以做出正確的決定,因此,修改規范比找漏洞更實用。
不可修改性是人們不管當時有多聰明,但也不可能會不出錯,因此,應對此方案出現問題的時候,最好是通過現有的法律框架來尋找和解決漏洞。
關於發展的不同
ETH,不管是有意安排或者從誕生就如此,區塊鏈核心決策都是在社區的參與下由以太坊基金會制定並大部分由它開發。
ETC,區塊鏈的決策主要是通過三個鬆散的,有協作關系的團隊在社區參與下得到反饋而決定的。
在任何情況下,任何人都可以為兩種區塊鏈提出改進建議,這正是開源之好處,也是很常見的,你會發現,這兩條鏈的開發人員通過Github和Reddit來相互溝通,我希望為了實現共同目標,提高溝通和交流的頻率。
關於兼容性
目前,這兩種區塊鏈都相互兼容,ETH寫的合約,或應用程序,可以在ETC上應用,反之亦然。
ETH,專注於eWASM,致力於為越來越多的開發者提供平台,而對於合約安全性的問題是次要的,例如:Viper。
ETC,專注於讓開發者創造出更安全的合約,例如:Viper,IOHK研究,代價是消耗潛在的開發者人數。
很明顯,這兩條鏈都可以互相接納,不管它們的意願是否相同,我的看法是,開發人員的數量並不一定與產品的質量掛鉤。
關於交易速度
ETH,平均25秒,升級之後會縮短。
ETC,平均14秒,升級之後維持在10-14秒,根據ECIP-1010 和 ECIP-1036協議。
關於區塊容量
ETH,隨著ETH日交易量逐漸達到5百萬,區塊容量日漸飽和,這種情況跟最近比特幣的交易費用問題類似,這個問題可以通過對區塊擴容得到解決,通過增加默認的燃料限制。
ETC,目前區塊容量還有很大空間,隨著越來越多的人接受ETC,區塊容量也會隨著增加,跟ETH一樣。
關於社區
ETH,主要在Reddit上討論
ETC,主要在Slack上討論
關於貨幣政策
ETH,計劃供應穩步增長,導致ETH區塊鏈在生命周期里平均有3%的通貨膨脹。
ETC,2025年之前,通貨膨脹達到3%,屆時總供應量將達到2億ETC,之後會通貨緊縮。
關於交易量的地區分布
ETH,中國佔20%,南韓25%,美國25%。
ETC,中國佔50%,南韓25%,美國10%。
關於證券
ETH,目前投資者沒有交易證券的選擇權,最近ETH的一個ETF,交易型開放式指數基金,產品被監管層否定了。
ETC,擁有ETC交易信託基金,該基金允許投資者擁有ETC,而不用擁有這個資產本身。