# US 12,182,128 B2 · Systems and methods for compressing data for distributed ledgers

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,182,128 B2
- Document ID: US12182128B2
- Status: Granted
- Kind: B2
- Application number: 18/151,969
- Filed: 2023-01-09
- Published: 2024-07-11
- Granted: 2024-12-31
- Earliest claimed: 2023-01-09
- Assignees: Walmart Apollo, LLC
- Applicants: Walmart Apollo, LLC
- Inventors: Lingyun Hu; Anand Banik; Pushparaj Parab; Haritha Gunawardana; Travis B. Folck
- Web page: https://patentgrep.com/patent/US12182128B2

## CPC

- G06F 16/24561: {Intermediate data storage techniques for performance improvement}
- G06F 16/221: {Column-oriented storage; Management thereof}
- G06F 16/258: {Data format conversion from or to a database}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

System and methods for compressing data for use in a distributed ledger are provided. In one form, the system includes: a network interface; a user interface device; and a control circuit coupled to the network interface and the user interface device. In this form, the control circuit executes a data compression module configured to: receive, via the network interface, a data set; transform and store the data set into a file format of rows and columns in which data of the data set are stored in a columnar fashion; apply a first compression step to compress each row and write each compressed row into the file format; apply a second compression step to further compress data after the compressed rows have been written into the file format; and encode the compressed data and transmit the encoded data to a first node of a distributed ledger.

## Claims

### Claim 1

A system for compressing data for use in a distributed ledger, the system comprising:
a network interface;
and
a control circuit coupled to the network interface, the control circuit executing a data compression module configured to:
receive, via the network interface, a data set;
transform and store the data set into a file format of rows and columns in which data of the data set are stored in a columnar fashion;
apply a first compression step to compress each row and write each compressed row into the file format;
apply a second compression step to further compress data after the compressed rows have been written into the file format; and
encode the compressed data and transmit the encoded data to a first node of a distributed ledger;
wherein the first compression step and the second compression step apply different compression algorithms, the first compression step applying row-level compression and the second compression step applying file-level compression.

### Claim 2 (depends on 1)

The system of claim 1, wherein the data set comprises a temporal series of measurements.

### Claim 3 (depends on 1)

The system of claim 1, wherein the control circuit is configured to transform and store the data of the data set in a parquet file format.

### Claim 4 (depends on 3)

The system of claim 3, wherein the control circuit is configured to use a Snappy compression algorithm in the first compression step to compress each row and write each compressed row into the parquet file format.

### Claim 5 (depends on 4)

The system of claim 4, wherein the control circuit is configured to use a gzip algorithm in the second compression step to further compress data in the parquet file format.

### Claim 6 (depends on 5)

The system of claim 5, wherein the control circuit is configured to encode the further compressed data by creating a base64 string encoding of the data in the parquet file format.

### Claim 7 (depends on 1)

The system of claim 1, wherein the control circuit is configured to share the encoded data, via the first node of the distributed ledger and the network interface, with a second node of the distributed ledger, the first and second nodes corresponding to a first entity and a second entity, respectively.

### Claim 8 (depends on 7)

The system of claim 7, wherein the control circuit is configured to:
decode the encoded data into the file format in which the data are stored in a columnar fashion;
apply a first decompression step to unzip the decoded data; and
apply a second decompression step to transform the unzipped data to correspond to the received data set.

### Claim 9 (depends on 7)

The system of claim 7, wherein the first entity is a purchaser of products and the second entity is a carrier of the products.

### Claim 10 (depends on 9)

The system of claim 9, wherein the control circuit is configured to:
compare data in the data set to a predetermined threshold corresponding to a characteristic of products transported by the carrier on behalf of the purchaser;
determine that at least a portion of the data exceeds the predetermined threshold; and
transmit a claim communication from the first entity to the second entity regarding the products transported by the carrier.

### Claim 11 (depends on 1)

The system of claim 1, further comprising a user interface device, the control circuit coupled to the user interface device.

### Claim 12

A method for compressing data for use in a distributed ledger, the method comprising:
receiving, by a control circuit executing a data compression module, a data set via a network interface;
transforming and storing, by the control circuit, the data set into a file format of rows and columns in which data of the data set are stored in a columnar fashion;
applying, by the control circuit, a first compression step to compress each row and write each compressed row into the file format;
applying, by the control circuit, a second compression step to further compress data after the compressed rows have been written into the file format; and
encoding, by the control circuit, the compressed data and transmitting the encoded data to a first node of a distributed ledger;
wherein the first compression step and the second compression step apply different compression algorithms, the first compression step applying row-level compression and the second compression step applying file-level compression.

### Claim 13 (depends on 12)

The method of claim 12, wherein the data set comprises a temporal series of measurements.

### Claim 14 (depends on 12)

The method of claim 12, further comprising, by the control circuit:
transform and store the data of the data set in a parquet file format.

### Claim 15 (depends on 14)

The method of claim 14, further comprising, by the control circuit:
using a Snappy compression algorithm in the first compression step to compress each row and write each compressed row into the parquet file format.

### Claim 16 (depends on 15)

The method of claim 15, further comprising, by the control circuit:
using a gzip algorithm in the second compression step to further compress data in the parquet file format.

### Claim 17 (depends on 16)

The method of claim 16, further comprising, by the control circuit:
encoding the further compressed data by creating a base64 string encoding of the data in the parquet file format.

### Claim 18 (depends on 12)

The method of claim 12, further comprising, by the control circuit:
sharing the encoded data, via the first node of the distributed ledger and the network interface, with a second node of the distributed ledger, the first and second nodes corresponding to a first entity and a second entity, respectively.

### Claim 19 (depends on 18)

The method of claim 18, further comprising, by the control circuit:
decoding the encoded data into the file format in which the data are stored in a columnar fashion;
applying a first decompression step to unzip the decoded data; and
applying a second decompression step to transform the unzipped data to correspond to the received data set.

### Claim 20 (depends on 18)

The method of claim 18, wherein the first entity is a purchaser of products and the second entity is a carrier of the products;
the method further comprising, by the control circuit:
comparing data in the data set to a predetermined threshold corresponding to a characteristic of products transported by the carrier on behalf of the purchaser;
determining that at least a portion of the data exceeds the predetermined threshold; and
transmitting a claim communication from the first entity to the second entity regarding the products transported by the carrier.
