國際船長協會(IFSMA)於今晨發布重磅消息,籲請各船船長為遵守各項國際公約(SOLAS,MLO,MARPOL,ISM,SMS….)發函給船旗國及公司主管(DPA): 在船員遣返,醫療救護,船員情緒,等影響安全之問題未獲解決之前, 船舶將於到達第一港口之後,不在開航!!!Dear Shipmaster, NOTICE TO ALL SHIPMASTERS We, the members of the IFSMA Executive Council and the IFSMA Secretariat do hope that this letter finds you, your crews and all your families safe and well wherever you are. This global COVID-19 pandemic has had an enormous impact on all the maritime industry, but it is you the seafarer who must not be forgotten. We hope you are all aware of the work that the International Maritime Organisation (IMO) together with IFSMA and other key non-Governmental Organisations (NGOs) are putting in on your behalf to enable crew changes to take place. The International Chamber of Shipping (ICS) and the International Transport Workers’ Federation (ITF), supported by its affiliated unions, have been working closely with IFSMA to put pressure on Governments to start taking measures to ensure this happens to keep you, the seafarers, safe and for ships to trade safely around the world. To date, a relatively small number of steps have been taken by relatively few nations, since most are only concentrating on their internal domestic struggles against the global COVID-19 pandemic and are sometimes seemingly oblivious to your plight at sea. Since the pandemic was declared by WHO in February, many Governments and International Organisations rightly declared Force Majeure for keeping you at sea. IFSMA wishes to reiterate that it now considers this no longer appropriate. Shipmasters, their crews and all in authority in the Shipping Industry remain subject to normal contractual conditions in accordance with the ILO’s Maritime Labour Convention and all IMO Codes, Conventions, Rules and Regulations. Easing of Restrictions NOT being Extended Shipmasters share the responsibility of their ship owners and ship operator employers for the safety and welfare of their crew and for the protection of the marine environment and it is for this reason IFSMA writes personally to you today. The IMO has issued industry developed Crew Change Protocols for the guidance of nations. Despite many nations starting to ease lockdown restrictions, not all have been extended to facilitate crew changes; those that have been implemented have been driven by shipowners, crew managers and unions, with little help from nations. Notwithstanding that a recent small number of repatriations and crew changes are showing some signs of becoming easier, IFSMA is increasingly concerned that there is now clear potential for the wholly unwarranted criminalisation of the Shipmaster if a maritime incident takes place in which tiredness and the mental health of their officers and crew are subsequently found to have undermined the safe operation of their ship.
International Federation of Shipmasters‘ Associations IFSMA • IMarEST • 1 Birdcage Walk • London SW1H 9JJ • United Kingdom Phone: +44 20 7261 0450 • Fax: +44 20 3468 2134 • Email: HQ@ifsma.org • Website: www.ifsma.org Beware Fatigue IFSMA wishes to remind all Shipmasters of their responsibility to protect themselves and their crew against attempts of suicides, fatigue, caused by long working days and extended tours of duty, as enshrined in the International Convention on Standards of Training, Certification and Watchkeeping, 1978 and the Maritime Labour Convention, 2006 (as amended). Your attention is also drawn to the International Convention for the Safety of Life at Sea, 1974 Regulation 34-1 which clearly states:- “The owner, the charterer, the company operating the ship as defined in regulation IX/1, or any other person shall not prevent or restrict the master of the ship from taking or executing any decision which, in the master’s professional judgement, is necessary for the safety of life at sea and the protection of the marine environment” ISM Code/SMS/MLC The International Safety Management (ISM) Code also states that the Company should ensure that the Safety Management System (SMS) operating on board the ship contains a clear statement emphasising the master's authority. The Company should establish in the SMS that the master has the overriding authority and the responsibility to make decisions with respect to safety and pollution prevention and to request the Company's assistance as and when may be necessary. Finally, IFSMA draws your attention to MLC Regulation 5.1.5, On-board complaints procedures. If, despite your best efforts as master, you feel the safety of your ship and crew is compromised due to lack of support from the shipowner or other factors, because: 1. Your crew is significantly beyond their contract term 2. Your crew is fatigued 3. You are short handed 4. You are concerned about the safe operation of your ship 5. You do not have sufficient PPE including sanitisers/testing (etc) 6. You do not have access to appropriate supplies including medicines 7. You cannot get access to urgent medical and urgent dental services ashore 8. Your crew is not provided free wifi/internet contact with home 9. Your crew want to go home Then: You have a duty and responsibility to report this to the shipowner (whose name and address must be stated on your seafarers’ employment agreement and the MLC Certificate carried onboard). Put the interests of your crew first. If they are not being granted their full MLC entitlements, such as: repatriation, access to medical care, entitlement to nutritious food, water and other supplies, then register their complaints with the shipowner.
International Federation of Shipmasters‘ Associations IFSMA • IMarEST • 1 Birdcage Walk • London SW1H 9JJ • United Kingdom Phone: +44 20 7261 0450 • Fax: +44 20 3468 2134 • Email: HQ@ifsma.org • Website: www.ifsma.org Under both SOLAS and the ISM Code you also have an obligation to report significant safety issues to the Shipowner (DPA) and the flag State and ensure you advise your Associations and Unions of what you are doing. You need to do this for your own protection from possible criminalisation in the event of a maritime incident, and for the safety of your crew and others. In the event that the issues you raise are not satisfactorily resolved you are entitled to refuse to sail on entry into your next port. Enclosed with this letter is a list of some of the points you might also wish to consider including in any Report/Complaint to your DPA or Administration Take care and keep safe and remember that IFSMA, the ITF and your unions stand behind you and are here to give you full support. On behalf of the IFSMA Executive Council and the IFSMA Secretariat,
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
「state port authority」的推薦目錄:
state port authority 在 Taipei Ethereum Meetup Facebook 的最讚貼文
By Frank Wang
[使用 go-ethereum 1.6 Clique PoA consensus 建立 Private chain (1)] -- by Frank Wang
Ethereum Proof of Authority
在 Ethereum 官方的共識機制是使用 PoW,Miner 必須靠使用算力去解決密碼學問題來取得寫帳(打包 Block)權。但 PoW 機制在私有鏈或聯盟鏈上並不是一個那麼有效率的共識機制,私有鏈的維運者必須花費多餘的算力來維持私有鏈的運作。
而 Proof of Authority 思維是直接指定哪些節點有寫帳權,其他節點透過演算法如果是被授權的節點打包 Block 則判定 Block 有效。
Ethereum Client 中有不同語言的實作,之前 Parity 版本的實作就有提供 PoA 的共識機制(介紹)。而在前段時間發佈的 geth 1.6 也支援了 PoA 的共識機制。不過 geth 的 PoA 使用方法跟機制和 Parity 的版本不同,geth 實作了 ethereum/EIPs#225 一個稱作 Clique 的共識機制。所以這篇主要筆記如何建立一個 geth Clique Private chain。
情境中會使用 4 個節點,分別代表兩個普通的節點發起交易,一個創世塊指定的授權節點,一個後期加入的授權節點來玩玩 Clique 。
安裝 geth
由於 go-ethereum 使用 golang 開發的,所有的程式都被編譯成單一的可執行檔了,執接下載下來就可以直接執行。
geth & tools 1.6 — https://ethereum.github.io/go-ethereum/downloads/
找到相對應 OS 後下載,記得下載 geth & tools 的版本,接下來會使用 geth 1.6 版本的一個創 Private chain 的工具 puppeth 來建立 Clique Private chain。
最後記得將這些執行檔加入 PATH 方便呼叫。
環境準備
待會要建置的環境將會使用 4 個 ethereum 節點,並且全部節點跑在同一台機器上,這樣比較省事。先創好 4 個資料夾,分別叫 node1 node2 signer1 signer2 ,node 是一般的 ethereum client,signer 在接下來的情境中當成打包 block 的角色。
-> % lsnode1 node2 signer1 signer2
建立 Ethereum 帳號
接著我們要替這四個角色各建立一個 Ethereum 帳號。
frank@frank-linux [10:51:22 AM] [~/src/eth-poa] -> % cd node1
frank@frank-linux [10:55:08 AM] [~/src/eth-poa/node1] -> % geth --datadir ./data account newWARN [04–18|10:55:30] No etherbase set and no accounts found as default Your new account is locked with a password. Please give a password. Do not forget this password.Passphrase: Repeat passphrase: Address: {c7873030c2532aafe540d9dfd02a08330ee06465}
在這步驟切換到每個目錄底下,指令 geth --datadir ./data account new 這段指令是指要使用當下目錄底下的 data 目錄當作 geth 存放資料的地方,並且創一個新的 Account。在剛剛建立的 node1, node2, signer1, signer2 都下相同指令創一個帳號。
一下是我創好的每個角色的 Account address:
node1: c7873030c2532aafe540d9dfd02a08330ee06465
node2: 6d650780d493056f679a30b2c65cfa5e07835ad6
signer1: 5cc640ae524f70c39081d65bc699b3b61a67bd3f
signer2: 0fe2d8747d24156b342c9fa5c5e7138cf4047a8d
創好帳號後就可以開始建立 Private chain 了
建立創世塊設定
由於 Clique 並不像 Parity 版本的 PoA 靠設定檔設定授權的節點。Clique 是將授權節點的相關資訊放在 Block Header 中,所以我們必須對創世塊做一些設定才可以讓授權機制生效。(但這並不意味著新增或刪除授權節點需要更換創世塊,晚點介紹怎麼新增授權節點)
Clique 是將授權的資訊放在 extraData 中,但資料結夠的格式並沒有那麼直覺,所以在此使用 geth 1.6 提供的建立 Private Chain 的工具 puppeth 來建立創世塊,puppeth 是各互動式的程式,直接啟動照著指示輸入相關資訊。
frank@frank-linux [11:19:16 AM] [~/src/eth-poa] -> % puppeth+ — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -+| Welcome to puppeth, your Ethereum private network manager || || This tool lets you create a new Ethereum network down to || the genesis block, bootnodes, miners and ethstats servers || without the hassle that it would normally entail. || || Puppeth uses SSH to dial in to remote servers, and builds || its network components out of Docker containers using the || docker-compose toolset. |+ — — — — — — — — — — — — — — — — — — — — — — — — — — — — — -+
Please specify a network name to administer (no spaces, please)> poa_for_fun
這裡會希望你給你的 Private chain 一個名字
Sweet, you can set this via — network=poa_for_fun next time!
INFO [04–18|11:19:21] Administering Ethereum network name=poa_for_funWARN [04–18|11:19:21] No previous configurations found path=/home/frank/.puppeth/poa_for_fun
What would you like to do? (default = stats) 1. Show network stats 2. Configure new genesis 3. Track new remote server 4. Deploy network components> 2
這裡選 2 ,要建立一個新的創世塊設定
Which consensus engine to use? (default = clique) 1. Ethash — proof-of-work 2. Clique — proof-of-authority> 2
共識機制,選 2,Clique PoA
How many seconds should blocks take? (default = 15)> 10
多少秒數會產出一個 Block,在這裡設 10 秒。當然你可以自己設定你想要的
Which accounts are allowed to seal? (mandatory at least one)> 0x5cc640ae524f70c39081d65bc699b3b61a67bd3f> 0x
指定一個 Account address 作為授權打包的角色。這裡使用上面產出的 Signer1 的 address。
Which accounts should be pre-funded? (advisable at least one)> 0xc7873030c2532aafe540d9dfd02a08330ee06465> 0x5cc640ae524f70c39081d65bc699b3b61a67bd3f> 0x
指定要不要事先給一些 ether。這裡選 node1 和 signer1 的 address,當然這隨你指定
Specify your chain/network ID if you want an explicit one (default = random)>
Network Id,直接用 random
Anything fun to embed into the genesis block? (max 32 bytes)>
沒什麼需要特別加入 genesis 的,留空
What would you like to do? (default = stats) 1. Show network stats 2. Save existing genesis 3. Track new remote server 4. Deploy network components> 2
選 2 存檔
Which file to save the genesis into? (default = poa_for_fun.json)> INFO [04–18|11:19:50] Exported existing genesis block
What would you like to do? (default = stats) 1. Show network stats 2. Save existing genesis 3. Track new remote server 4. Deploy network components> ^C
ctrl+c 離開,會在當下目錄看到一個 poa_for_fun.json 檔案。
替 4 個節點初始化 Private chain
使用 geth init 指令,分別替換 4 個 node 的 datadir
frank@frank-linux [11:38:07 AM] [~/src/eth-poa] -> % lsnode1 node2 poa_for_fun.json signer1 signer2frank@frank-linux [11:38:07 AM] [~/src/eth-poa] -> % geth --datadir node1/data init poa_for_fun.json INFO [04–18|11:39:10] Allocated cache and file handles database=/home/frank/src/eth-poa/node1/data/geth/chaindata cache=128 handles=1024INFO [04–18|11:39:10] Writing custom genesis block INFO [04–18|11:39:10] Successfully wrote genesis state hash=5722d7…47e737frank@frank-linux [11:39:10 AM] [~/src/eth-poa] -> % geth --datadir node2/data init poa_for_fun.jsonINFO [04–18|11:39:14] Allocated cache and file handles database=/home/frank/src/eth-poa/node2/data/geth/chaindata cache=128 handles=1024INFO [04–18|11:39:14] Writing custom genesis block INFO [04–18|11:39:14] Successfully wrote genesis state hash=5722d7…47e737frank@frank-linux [11:39:14 AM] [~/src/eth-poa] -> % geth --datadir signer1/data init poa_for_fun.jsonINFO [04–18|11:39:21] Allocated cache and file handles database=/home/frank/src/eth-poa/signer1/data/geth/chaindata cache=128 handles=1024INFO [04–18|11:39:21] Writing custom genesis block INFO [04–18|11:39:21] Successfully wrote genesis state hash=5722d7…47e737frank@frank-linux [11:39:21 AM] [~/src/eth-poa] -> % geth --datadir signer2/data init poa_for_fun.jsonINFO [04–18|11:39:24] Allocated cache and file handles database=/home/frank/src/eth-poa/signer2/data/geth/chaindata cache=128 handles=1024INFO [04–18|11:39:24] Writing custom genesis block INFO [04–18|11:39:24] Successfully wrote genesis state hash=5722d7…47e737
到目前我們已經準備好讓節點可以啟動和互相連線了。
啟動 geth client 並設定 peers 間的連線
分別在 node1, node2 目錄使用指令啟動 geth
geth --datadir ./data --networkid 55661 --port 2000 console
這裡需要注意的是 datadir 參數沒問題,先前的步驟已經在每個節點各自的目錄都建立了 data 目錄。networkid 大家一定都要用同一個值才可以互相連線。port 用來讓 geth 跟其他 geth 連線所 listen 的一個 port,由於四個節點都在本機,所以這裡必須都指定不同的值。以下使用 node1 2000, node2 2001, signer1 2002, signer 2003 當範例。
如果節點是授權打包 block 的節點,那你啟動時要先 unlock 你的 account,這樣才可以進行交易的打包。多帶一個 unlock 參數,以及你要解鎖的 account address。啟動後會要求輸入當時創 account 時的 passphrase。所以在這裡啟動 signer1 和 signer2 時都要用 unlock 參數帶入他們各自的 address 解鎖。
geth --datadir ./data --networkid 55661 --port 2002 --unlock 5cc640ae524f70c39081d65bc699b3b61a67bd3f console
啟動後會看到這樣的結果,如果沒噴任何錯誤就是啟動成功了,同時會啟動一個 console 的互動介面,可以打像是 admin.nodeInfo 這類的指令來操作 geth。
在啟動訊息中有一段
INFO [04–18|12:01:31] RLPx listener up self=enode://87692411dd1af113ccc04d3f6d3d7d47366c81e595525c861c7a3c902ca0a86f46e8d7a837f431536822dbb012f68d942ed96910385805864e990efdf3839a1e@[::]:2000
由於目前是在 private chain 上,沒有設定啟動節點也沒設定 static node,各節點啟動後是沒辦法找到對方的。所以在此我們把 node2, singer1, signer2 都加入 node1 為自己的節點連上。geth 要連上對方的節點就必須好 enode://
在 node2, signer1, signer2 的 geth console 頁面分別打入指令
>admin.addPeer(“enode://87692411dd1af113ccc04d3f6d3d7d47366c81e595525c861c7a3c902ca0a86f46e8d7a837f431536822dbb012f68d942ed96910385805864e990efdf3839a1e@127.0.0.1:2000”)
完成後回到 node1 的 geth console 打入 admin.peers 應該要看到三個節點資訊。
到這步 geth 節點已經連上可以開始進行 PoA 挖礦和交易了。
啟動 Miner
到 signer1 的 console 打入 miner.start() 這時候如果你本機之前沒有啟動過 miner,geth 會先產生 DAG 等 DAG 產生完後就會開始挖礦了。
在 signer1 的 console 會出現正在 mining 的訊息。
其他節點則會收到 import block 的訊息。
Make a transaction
到這裡 Clique 的 Private chain 已經設定完成了,我們可以開始在這條鏈上做一些交易。接下來為了方便會使用 geth 的 console 來做 send ether 交易,如果你不習慣的話也可以使用 mist 這類的 UI 錢包來做。
node1 console
還記得在建立創世塊的時候有先給了 node1 和 signer1 的 address 一些 ether 吧?先用這令看看這些 ether 有沒有真的在鏈上。使用指令 ")" target="_blank">eth.getBalance("") 來查詢。
> eth.getBalance(“c7873030c2532aafe540d9dfd02a08330ee06465”)9.04625697166532776746648320380374280103671755200316906558262375061821325312e+74> eth.getBalance(“6d650780d493056f679a30b2c65cfa5e07835ad6”)0>
確定 node1 有 ether 但 node2 沒有,接著用 eth.sendTransaction 指令來把一些 ether 從 node1 轉到 node2 吧。
現在 node1 的 console 把自己的 Account unlock
> personal.unlockAccount("c7873030c2532aafe540d9dfd02a08330ee06465")
Unlock account c7873030c2532aafe540d9dfd02a08330ee06465Passphrase:true>
轉出 0.05 ether 到 6d650780d493056f679a30b2c65cfa5e07835ad6
>eth.sendTransaction({from:"c7873030c2532aafe540d9dfd02a08330ee06465", to:"6d650780d493056f679a30b2c65cfa5e07835ad6", value: web3.toWei(0.05, "ether")})INFO [04-18|12:39:53] Submitted transaction fullhash=0xa7a9da239b8f96b9f6fe4007ee88773915f034be2365b2dab234fd8c0545aa37 recipient=0xc7873030c2532aafe540d9dfd02a08330ee06465"0xa7a9da239b8f96b9f6fe4007ee88773915f034be2365b2dab234fd8c0545aa37">
如果你 singer1 的 miner 沒關掉的話,在幾秒後就會看到一個含有一筆交易的 block 產出
再來看看 node1 和 node2 的 ether
> " target="_blank">eth.getBalance("c7873030c2532aafe540d9dfd02a08330ee06465")9.04625697166532776746648320380374280103671755200316906558211535061821325312e+74> " target="_blank">eth.getBalance("6d650780d493056f679a30b2c65cfa5e07835ad6")50000000000000000>
交易完成!
加入一個新的信任節點
在 Clique 共識機制中是使用 Clique 提供的 API 來做節點管理,現在只 demo 加入節點進入信任名單。
signer2
signer2 是一開始沒設定在創世塊中信任列表的節點,如果這時候讓它啟動 miner 會怎麼樣呢?會噴一個未授權的錯誤
> miner.start()INFO [04-18|12:49:51] Starting mining operationnull> INFO [04-18|12:49:51] Commit new mining work number=46 txs=0 uncles=0 elapsed=284.189µsWARN [04-18|12:49:51] Block sealing failed err=unauthorized
必須回到已經在授權名單內的節點將新的節點加入。
signer1
回到 signer1 的 console 輸入加入的指令
> clique.propose("0x0fe2d8747d24156b342c9fa5c5e7138cf4047a8d", true)
singer2
接著回到 signer2 的 cosole
開始打包交易了
結語
由於 geth 1.6 才發佈不久,關於 Clique 的相關文章還蠻少的。提供如何使用 geth 1.6 建立一個 Clique private chain 的簡單教學,其實大部分都是我自己在建置時的筆記,內容省略了很多關於 Clique 的一些特性和原理,有興趣的建議直接看 ethereum/EIPs#225。希望這篇可以幫助到使用 geth 但又想用用 PoA 共識機制的同伴們XD
state port authority 在 Jenny珍妮 Facebook 的最讚貼文
紐約旅遊清單下集終於寫完了!😊
趕快來跟你們分享第三天 ~ 第五天的行程!
✔️第三天的行程:
早上可以去Top of the Rock或Empire State 看紐約的美景,個人比較推薦Top of the Rock 因為不用排隊,而且不像Empire State 有石牆和鐵絲圍著,他還有三層的觀望台,拍照真的好很多。之後可以去Madison Square Park,那裡可以看到1902年蓋的熨斗大廈 Flatiron Builing,也可以去吃紐約最有名的漢堡Shake Shack。吃完漢堡後可以去Whitney美術博物館在Chelsea,Whitney 應該是現在最新最漂亮的美術博物館,去的時候記得要去八樓外面拍風景喔。之後可以去Meatpacking District,那裡有很多攝影師在拍路上的模特兒或部落客,從那裡可以走去曼哈頓我最愛的地方West Village。那裡的每個街道都太可愛了,喜歡Sex in the City 的人一定要去Perry St 看Carrie 的家,還有Magnolia Bakery 的杯子蛋糕。West Village 有幾間我很喜歡的餐廳,日式燒烤 Takashi,義大利餐廳 L'Artusi,日式火鍋Hakata Don Don,還有一間是吃下午茶的叫Bosie Tea Parlor。晚上可以去我最喜歡的露天酒吧 Ink 48 Press Lounge,那裡的夜景真的超美。另外還有一個露天的叫Gallow Green 酒吧,也很值得去看看。
✔️第四天的行程:
已經馬不停蹄地跑了三天,第四天就輕鬆一點吧。建議可以去吃Peter Luger,也就是紐約最有名的牛排餐廳,之後可以去中央公園走走走,來紐約一定要去看看在曼哈頓的忙碌生活中,唯一讓紐約人可以輕鬆野餐,可以找到戶外可以喘息的地方,在那裡還可以去Metropolitan 博物館,還有去吃Lady M 千層蛋糕。晚上可以個百老匯劇場,或者是Sleep No More,這都是紐約很有名的歌舞表演,來紐約沒有去看表演真的很可惜。看完表演後,可以去酒吧,紐約有很多很特別的酒吧,也許是調酒好喝又特別,也許是有美麗夜景,也許是有很棒的表演。我很喜歡一間叫Flatiron Room,晚上有時會有爵士表演,酒吧裡面還有賣各種不同的whiskey,氣氛超棒的喔。
✔️第五天的行程:
這是最後一天了,可以去看其他的美術博物館也可以去逛街,博物館的話可以去MOMA和Guggenheim,逛街的話一定要去第五大道,應該是美國最最有名逛街的地方吧,所有的百貨公司還有名牌商店都在那裡。或者也可以去逛紐約 Woodbury outlet,這應該是美國最大的outlet 吧,他有Balenciaga,Bottega Venetta,Burberry,Celine,Chloe,Moncler,Prada,Rag & Bone,YSL,Valentino,真的是所有的大牌子都有,而且還有Le Creuset 的店,之前去的時候好像有打6折!很值得去逛逛喔。沒開車的朋友,可以去Port Authority (42nd St & Eighth Ave) 搭車。
五天下來,應該把該去的都去了,當然還有很多可以去的地方,但我的紐約旅遊清單應該有包含了那些一定一定要去的。希望這五天下來,你們能更認識紐約,看到紐約的鮮明文化,也會像我一樣愛上紐約♡
有問題可以發問喔🙋🏻
附上一張上個禮拜去上班的路上的照片,雲一朵朵的好像棉花糖,還有可以不要一天到晚都有地方在修路或整修大樓嗎?😩
Follow me on Instagram: jennychouuu