JP2020170342A - 分散台帳装置、分散台帳システム、及び分散台帳管理方法 - Google Patents
分散台帳装置、分散台帳システム、及び分散台帳管理方法 Download PDFInfo
- Publication number
- JP2020170342A JP2020170342A JP2019071362A JP2019071362A JP2020170342A JP 2020170342 A JP2020170342 A JP 2020170342A JP 2019071362 A JP2019071362 A JP 2019071362A JP 2019071362 A JP2019071362 A JP 2019071362A JP 2020170342 A JP2020170342 A JP 2020170342A
- Authority
- JP
- Japan
- Prior art keywords
- distributed ledger
- processing
- program
- node
- log
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000007726 management method Methods 0.000 title claims 3
- 238000000034 method Methods 0.000 claims abstract description 192
- 230000008569 process Effects 0.000 claims abstract description 177
- 238000012545 processing Methods 0.000 claims description 217
- 230000002093 peripheral effect Effects 0.000 claims description 40
- 230000008520 organization Effects 0.000 description 49
- 230000007704 transition Effects 0.000 description 28
- 238000012790 confirmation Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 24
- 230000037430 deletion Effects 0.000 description 11
- 238000012217 deletion Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000012795 verification Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
Abstract
Description
次に、一実施形態に係るブロックチェーン(BC)システムについて詳細に説明する。
クライアント200は、例えば、プロセッサ、メモリ、入出力装置、ネットワークインタフェース等を有する計算機により構成される。クライアント200では、トランザクションを分散台帳で管理するためのBCサービスを活用する業務アプリケーションプログラムなどが実行される。クライアント200は、アプリケーションプログラムをプロセッサにより実行することにより、トランザクションを生成し、BCノード300へ発行する。なお、アプリケーションプログラムをBCノード300で実行させるようにして、BCノード300をクライアント200として機能させるようにしてもよい。
管理端末500は、例えばプロセッサ、メモリ、キーボード及びディスプレイ等の入出力装置、ネットワークインタフェース等を有する計算機により構成される。管理端末500では、BCサービスの管理を行うための運用管理アプリケーションプログラムが実行される。管理端末500は、入出力装置を介して、管理者からのBCノード300、ストレージ400に対する設定の指示を受け付ける。また、管理端末500は、入出力装置を介して、BCノード300やストレージ400の状態を示す情報を表示する。なお、管理端末500の機能を、クライアント200やBCノード300を構成する計算機に内蔵するようにしてもよい。
図3は、一実施形態に係るBCノードと、ストレージとの構成図である。
ストレージ400は、BCノード300のバックアップデータ431を格納する。ストレージ400は、プロセッサ410と、メモリ420と、記憶デバイス430と、ネットワークインタフェース440とを有する。これら構成要素410,420,430,440は、バス450を介して相互接続されている。
図4は、一実施形態に係る分散台帳の第1の構成例を示す図である。
次に、本実施形態におけるデータベース332に含まれる各種テーブルの構成例を説明する。
図6は、一実施形態に係るスマートコントラクト管理テーブルの構成図である。
図7は、一実施形態に係るシステム構成管理テーブルの構成図である。
図8は、一実施形態に係る周辺コンポーネント管理テーブルの構成図である。
図9は、一実施形態に係る運用処理ステップ管理テーブルの構成図である。
図10は、一実施形態に運用処理ステップ遷移管理テーブルの構成図である。
図11は、一実施形態に係る運用トランザクション管理テーブルの構成図である。
図12は、一実施形態に係る運用ログテーブルの構成図である。
図13の示す運用管理処理の各処理を説明する前に、BCシステム100でのトランザクション処理について説明する。
次に、運用処理実行要求処理(図13のS001)について説明する。運用処理実行要求処理においては、クライアント200や管理端末500から運用処理の開始要求(実行要求:トランザクション)の通知を受領したBCプログラム600は、各ノード300へ運用処理実行要求を送信する。運用処理実行要求のトランザクションを受領したBCプログラム600は、図14に示すトランザクション処理により、受領した運用処理実行要求のトランザクションを処理する。この場合におけるトランザクション処理では、ステップS101では、BCプログラム600は、運用処理実行要求に対応する運用SCプログラム612を選択し、ステップS104では、運用SCプログラム612が処理を実行する。
ステップS003で判断される中断の要求を行う運用処理中断処理や、ステップS004で判断される再開要求を行う再開要求処理についても、運用処理要求処理と同様な流れで実行される。なお、運用処理中断処理や再開要求処理においては、ステップS201においては、中断や再開の対象のトランザクションのエントリの状態1303を、中断や再開に更新し、また、ステップS202においては、運用エージェント321へ運用処理の中断や再開に関する要求を通知する。
ステップS002における運用処理について説明する。運用処理では、BCシステム100内の全BCノード300の運用エージェント321が、BCプログラム600からの通知内容に対応する運用処理プログラム323を選択して実行する。
次に、ログ登録処理(図16のステップS308)について説明する。
次に、運用処理実行完了確認処理(図13のS005)について説明する。この運用処理実行完了確認処理では、BCプログラム600は、各BCノード300での運用処理の実行完了を確認する。具体的には、クライアント200や管理端末500から運用処理の実行完了確認要求(運用処理実行確認要求:トランザクション)の通知を受領したBCプログラム600は、各ノード300へ運用処理の実行完了確認要求を送信する。運用処理実行完了確認要求のトランザクションには、実行完了を確認したい運用処理実行要求処理のトランザクションの識別子などの情報を含む。実行完了確認要求のトランザクションを受領したBCプログラム600は、図14に示すトランザクション処理により、受領した運用処理実行完了確認要求のトランザクションを処理する。この場合におけるトランザクション処理では、ステップS101では、BCプログラム600は、運用処理実行完了確認要求に対応する運用SCプログラム612を選択し、ステップS104では、運用SCプログラム612が処理を実行する。
Claims (11)
- 所定の対象のトランザクションについての第1分散台帳を管理する複数の分散台帳装置を備える分散台帳システムにおける分散台帳装置であって、
前記分散台帳装置は、
記憶デバイスと、プロセッサ部とを備え、
前記記憶デバイスは、前記第1分散台帳を記憶し、
前記プロセッサ部は、前記第1分散台帳に関わる処理を実行した場合に、前記処理の内容を示す内容情報を、前記第1分散台帳を管理する他の分散台帳装置で管理させるために送信する
分散台帳装置。 - 前記プロセッサ部は、
前記内容情報を、前記第1分散台帳を管理する複数の分散台帳装置が管理する第2分散台帳に登録させる指示を送信する
請求項1に記載の分散台帳装置。 - 前記プロセッサ部は、
前記内容情報を、前記第1分散台帳を管理する複数の分散台帳装置のそれぞれの前記記憶デバイスにおけるデータベースに登録させる指示を送信する
請求項1又は請求項2に記載の分散台帳装置。 - 前記プロセッサ部は、
前記内容情報に対して前記分散台帳装置の秘密鍵を用いた署名を付して送信する
請求項1から請求項3のいずれか一項に記載の分散台帳装置。 - 前記分散台帳装置は、前記第1分散台帳の処理に関与可能な周辺コンポーネントと接続されており、
前記プロセッサ部は、前記内容情報を、前記処理に関与した前記周辺コンポーネントから取得する、
請求項1から請求項3のいずれか一項に記載の分散台帳装置。 - 前記プロセッサ部は、
前記周辺コンポーネントから、前記内容情報に対する、前記周辺コンポーネントの秘密鍵を用いた署名を取得し、
前記内容情報に対して、取得した署名を付して送信する
請求項5に記載の分散台帳装置。 - 前記プロセッサ部は、
前記内容情報に付された署名に使用した秘密鍵に対応する公開鍵を取得し、前記公開鍵を用いて前記署名が正しいか否かを判定し、
判定の結果に基づいた前記内容情報に対応する処理の実行状態を、前記他の分散台帳装置で管理させるために送信する
請求項4又は請求項6に記載の分散台帳装置。 - 前記プロセッサ部は、
前記第1分散台帳に関わる処理の実行要求を受け取った場合に、前記実行要求をデータベースに登録するとともに、前記実行要求に対応する前記第1分散台帳に関わる処理を実行させるための処理要求を発行し、
処理要求に対応する処理を実行する場合には、前記データベースに、前記処理要求の基となる実行要求が存在するか否かを判定し、
前記データベースに、処理要求の基となる実行要求が存在していない場合に、前記処理要求に対応する処理の実行を行わないようにする
請求項1から請求項7のいずれか一項に記載の分散台帳装置。 - 前記第1分散台帳に関わる処理は、前記第1分散台帳のバックアップデータを削除する処理である
請求項1から請求項8のいずれか一項に記載の分散台帳装置。 - 所定の対象のトランザクションについての第1分散台帳を管理する複数の分散台帳装置を備える分散台帳システムであって、
前記分散台帳装置は、
記憶デバイスと、プロセッサ部とを備え、
前記記憶デバイスは、前記第1分散台帳を記憶し、
前記プロセッサ部は、前記第1分散台帳に関わる処理を実行した場合に、前記処理の内容を示す内容情報を、前記第1分散台帳を管理する他の分散台帳装置に対して送信する
分散台帳システム。 - 所定の対象のトランザクションについての第1分散台帳を管理する複数の分散台帳装置を備える分散台帳システムにおける分散台帳装置による分散台帳管理方法であって、
記憶デバイスに記憶された前記第1分散台帳に関わる運用処理を実行し、
前記第1分散台帳に関わる運用処理の内容を示す内容情報を、前記第1分散台帳を管理する他の分散台帳装置に対して送信する
分散台帳管理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019071362A JP7316081B2 (ja) | 2019-04-03 | 2019-04-03 | 分散台帳装置、分散台帳システム、及び分散台帳管理方法 |
US16/811,044 US11483158B2 (en) | 2019-04-03 | 2020-03-06 | Distributed ledger device, distributed ledger system, and distributed ledger management method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019071362A JP7316081B2 (ja) | 2019-04-03 | 2019-04-03 | 分散台帳装置、分散台帳システム、及び分散台帳管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020170342A true JP2020170342A (ja) | 2020-10-15 |
JP7316081B2 JP7316081B2 (ja) | 2023-07-27 |
Family
ID=72663251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019071362A Active JP7316081B2 (ja) | 2019-04-03 | 2019-04-03 | 分散台帳装置、分散台帳システム、及び分散台帳管理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11483158B2 (ja) |
JP (1) | JP7316081B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022091308A (ja) * | 2020-12-09 | 2022-06-21 | 株式会社日立製作所 | ストレージシステム及びデータ削除方法 |
US20220343018A1 (en) * | 2021-04-21 | 2022-10-27 | SafePorter LLC | Method for providing a privacy-enabled service to users |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180113752A1 (en) * | 2016-10-20 | 2018-04-26 | International Business Machines Corporation | Inter-ledger messaging in a blockchain |
JP2018081464A (ja) * | 2016-11-15 | 2018-05-24 | 富士通株式会社 | 通信方法、装置、及びプログラム |
WO2018105038A1 (ja) * | 2016-12-06 | 2018-06-14 | 三菱電機株式会社 | 通信装置及び分散型元帳システム |
JP2018128723A (ja) * | 2017-02-06 | 2018-08-16 | 株式会社日立製作所 | 信用度管理システムおよび信用度管理方法 |
JP2018156464A (ja) * | 2017-03-17 | 2018-10-04 | Kddi株式会社 | 分散型コンテナ配置の最適化方法およびシステム |
JP2019028525A (ja) * | 2017-07-26 | 2019-02-21 | 株式会社日立製作所 | 運用管理方法、運用管理システム、および、運用管理プログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180293557A1 (en) | 2017-04-05 | 2018-10-11 | Samsung Sds Co., Ltd. | Method of charging electronic currency automatically based on blockchain and system thereof |
US10958436B2 (en) * | 2017-12-28 | 2021-03-23 | Industrial Technology Research Institute | Methods contract generator and validation server for access control of contract data in a distributed system with distributed consensus |
US20210136042A1 (en) * | 2018-05-07 | 2021-05-06 | Convida Wireless, Llc | Interworking between iot service layer systems and distributed ledger systems |
JP6684850B2 (ja) * | 2018-05-16 | 2020-04-22 | 株式会社日立製作所 | 分散台帳システム、分散台帳サブシステム、および、分散台帳ノード |
US11108559B2 (en) * | 2019-01-02 | 2021-08-31 | International Business Machines Corporation | Producing proof of receipt, existence and other data provenance evidence |
-
2019
- 2019-04-03 JP JP2019071362A patent/JP7316081B2/ja active Active
-
2020
- 2020-03-06 US US16/811,044 patent/US11483158B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180113752A1 (en) * | 2016-10-20 | 2018-04-26 | International Business Machines Corporation | Inter-ledger messaging in a blockchain |
JP2018081464A (ja) * | 2016-11-15 | 2018-05-24 | 富士通株式会社 | 通信方法、装置、及びプログラム |
WO2018105038A1 (ja) * | 2016-12-06 | 2018-06-14 | 三菱電機株式会社 | 通信装置及び分散型元帳システム |
JP2018128723A (ja) * | 2017-02-06 | 2018-08-16 | 株式会社日立製作所 | 信用度管理システムおよび信用度管理方法 |
JP2018156464A (ja) * | 2017-03-17 | 2018-10-04 | Kddi株式会社 | 分散型コンテナ配置の最適化方法およびシステム |
JP2019028525A (ja) * | 2017-07-26 | 2019-02-21 | 株式会社日立製作所 | 運用管理方法、運用管理システム、および、運用管理プログラム |
Also Published As
Publication number | Publication date |
---|---|
US11483158B2 (en) | 2022-10-25 |
US20200322165A1 (en) | 2020-10-08 |
JP7316081B2 (ja) | 2023-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110620810B (zh) | 在区块链上的连续资产转移的非链接所有权 | |
CN110417844B (zh) | 使用区块链分散管理多所有者节点的系统和方法 | |
US11070360B2 (en) | Parallel transaction validation and block generation in a blockchain | |
US11240001B2 (en) | Selective access to asset transfer data | |
CN108898390B (zh) | 基于区块链的智能合约调用方法及装置、电子设备 | |
US11227057B2 (en) | Membership access management of a database | |
US11196568B2 (en) | Identity protection | |
US11341121B2 (en) | Peer partitioning | |
WO2018111295A1 (en) | Blockchain monitoring and management | |
US10833845B2 (en) | Guarantee of ledger immutability | |
JP7254585B2 (ja) | システム間連携方法およびノード | |
US11263059B2 (en) | Load leveler | |
US11240000B2 (en) | Preservation of uniqueness and integrity of a digital asset | |
JP2022504353A (ja) | ブロックチェーン・タイムスタンプ協定 | |
US20200076608A1 (en) | Guarantee of ledger immutability | |
US11487741B2 (en) | Preservation of uniqueness and integrity of a digital asset | |
US11176093B2 (en) | Defensible disposition of data | |
US11354278B2 (en) | Linking of tokens | |
US20200143365A1 (en) | Real-time monitoring of objects in blockchain networks | |
US20200145190A1 (en) | Management of a size of a ledger | |
US11138188B2 (en) | Performance optimization | |
JP7316081B2 (ja) | 分散台帳装置、分散台帳システム、及び分散台帳管理方法 | |
US20200242593A1 (en) | Value optimizing data store | |
US11379316B2 (en) | Snapshot restoration | |
JP6477073B2 (ja) | ライセンス管理システム、プログラム及びライセンス管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211224 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20221115 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230110 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230306 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230627 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230714 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7316081 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |