IP Library Granted Patent US 12,289,366
Granted Patent B2
US 12,289,366 · App. 17/818,012 · Granted Apr 29, 2025

System and method for real-time secure multimedia streaming over a decentralized network

Inventors: Chris Allen (Jamaica Plain, MA); Davide Lucchi (Boston, MA); Paul Gregoire, Jr. (Henderson, NV); Todd Anderson (Middlebury, VT); Rajdeep Rath (Kolkata, IN); Andy Shaules (Tacoma, WA)
Assignee: Infrared5, Inc.
H04L67/1044H04L65/611H04L65/65H04N21/2187
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,289,366
App. No.
17/818,012
Granted
Apr 29, 2025
Kind
B2
Abstract

The present invention relates to systems and methods suitable for real-time streaming over a decentralized or centralized network. In the decentralized network, the present invention relates to a system and method that utilizes a block-chain distributed network to securely and reliably stream multimedia in real-time. In the centralized network, the present invention utilizes a centralized stream manager to manage nodes within the distributed network to securely and reliably stream multimedia in real-time.

Claims (54)

1. A system providing a decentralized network of nodes for live real-time streaming of streaming media data, the system comprising:

a broadcaster device configured to publish a smart contract on a blockchain including data representing a live stream of streaming media data from a broadcaster;

a plurality of node devices, each configured to:

register on the blockchain as an available node in the decentralized network of nodes for participating in delivering live streams to one or more subscriber devices;

in response to being selected as an edge node device for streaming the live stream from a node device among the plurality of node devices to a subscriber device among the one or more subscriber devices, establish a streaming data connection using a streaming protocol with the subscriber device;

in response to being selected as an origin node device for streaming the live stream from the broadcaster device to another node device, establish a streaming data connection using the streaming protocol with the broadcaster device;

wherein, after establishment of a connection path between the broadcaster device and the one or more subscriber devices through the plurality of node devices selected as origin node devices and edge node devices for the live stream:

the broadcaster device is configured to transmit the live stream over established streaming data connections to origin node devices selected for the live stream,

each origin node device selected for the live stream is configured to receive the live stream from the broadcaster device and to transmit the live stream over established streaming data connections with one or more respective edge node devices selected for the live stream, and

each edge node device selected for the live stream for a respective subscriber device and connected to a respective origin node device is configured to receive the live stream from the respective origin node device and to transmit the live stream to the respective subscriber device over the established streaming data connection.

2. The system of claim 1 , further comprising at least one relay node device configured to relay the live stream between at least one origin node device and at least one edge node device.

3. The system of claim 2 , wherein selecting a node device as an edge node device uses a logistical regression process.

4. The system of claim 3 , wherein the logistical regression process comprises determining at least one of a geographical position, a bandwidth score, a packet loss score, or an age of the plurality of node devices and selecting one of the plurality of node devices as an edge node device based on the least one of the geographical position, the bandwidth score, the packet loss score, or the age.

5. The system of claim 4 , wherein the determining the geographical position comprises:

calculating a geographical position of a node device based on the IP address of the node device at a time of joining the decentralized network;

associating a geographical value based on a geographical region of the geographical position; and

calculating a distance between the node device and a target node device based on the geographical value of the node device and a geographical value of the target node device.

6. The system of claim 4 , wherein the determining the bandwidth score comprises:

monitoring bandwidth of transactions provided to a node device;

calculating a sum of all the bandwidth of the transactions; and

dividing the sum by a sum of all transactions generates after the node device joined the decentralized network.

7. The system of claim 4 , wherein the determining the packet loss score comprises:

calculating a sum of all packet losses reported by neighbor node devices for a node device; and

dividing the sum by a total number of transactions performed by the node device.

8. The system of claim 4 , wherein the determining the age comprises an amount of time that has elapsed since a most recent stream was delivered by a node device.

9. The system of claim 1 , further comprising at least one proxy node device configured to establish the streaming data connection between at least one edge node device and the subscriber device using a WebRTC protocol including a secure encrypted streaming data connection to the subscriber device and an unencrypted connection to the at least one edge node device to establish the secure encrypted streaming data connection with the at least one edge node device.

10. The system of claim 9 , wherein the WebRTC protocol is utilized to implement a double layer encryption comprising a first layer of encryption through the WebRTC protocol using Datagram Transport Layer Security (DTLS) and a second layer of encryption transmitting a Digital Rights Management (DRM) key issued by the broadcaster device.

11. The system of claim 1 , further comprising a transcoder configured to provide a Multiple Bitrate (MBR) to create multiple streams with different bitrates through at least one origin node device.

12. The system of claim 9 , wherein the WebRTC connection provides real-time end-to-end latency below 500 ms, regardless of a physical location of the broadcaster device and the subscriber device.

13. The system of claim 1 , wherein each node device is further configured to, further in response to being selected as the edge node device for the subscriber device, send a message to the broadcaster device indicating that the node device has been selected as the edge node device connected with the subscriber device for the live stream provided by the broadcaster device.

14. The system of claim 13 , wherein each node device is further configured to, further in response to being selected as the edge node device for the subscriber device, store relationship information in a local private database of the node device indicating that the node device has been selected as the edge node device connected with the subscriber device for the live stream provided by the broadcaster device.

15. The system of claim 13 , wherein the subscriber device is further configured to send a message to the broadcaster device indicating the node device that has been selected as the edge node device for the subscriber device for the live stream provided by the broadcaster device.

16. The system of claim 15 , wherein the subscriber device is further configured to store relationship information in a local private database of the subscriber device indicating the node device that has been selected as the edge node device for the subscriber device for the live stream provided by the broadcaster device.

17. The system of claim 15 , wherein the broadcaster device is further configured to, after receiving messages from the subscriber device and the node device that has been selected as the edge node device for the subscriber device, update a local database of the broadcaster device with data indicating the connection path between the subscriber device and the edge node device.

18. The system of claim 1 , wherein each node device is configured to store, in a local database of the node device, information describing, for each live stream processed by the node device, data indicating a respective role of the node for the live stream and a list of respective neighboring devices for the live stream.

19. The system of claim 18 , wherein the broadcaster device is configured to store, in a local database of the broadcaster device, data indicating, for each live stream provided by the broadcaster device, a respective role and identifier of each node device participating in transmitting the live stream.

20. The system of claim 1 , wherein the broadcaster device is configured to store, in a local database of the broadcaster device, data indicating, for each live stream provided by the broadcaster device, a respective role and identifier of each node device participating in transmitting the live stream.

21. A system providing a network of nodes for live real-time streaming of a live stream of streaming media data from a broadcaster device to one or more subscriber devices, the system comprising:

a plurality of node devices, each configured to:

register as an available node in the network of nodes for participating in delivering live streams of streaming media data;

in response to being selected as an edge node device for streaming the live stream from a node device among the plurality of node devices to a subscriber device among the one or more subscriber devices, establish a streaming data connection using a streaming protocol with the subscriber device;

in response to being selected as an origin node device for streaming the live stream from the broadcaster device to another node device, establish a streaming data connection using the streaming protocol with the broadcaster device;

wherein, after establishment of a connection path between the broadcaster device and the one or more subscriber devices through the plurality of node devices selected as origin node devices and edge node devices for the live stream,

the broadcaster device is configured to transmit the live stream over established streaming data connections to origin node devices selected for the live stream,

each origin node device selected for the live stream is configured to receive the live stream from the broadcaster device and to transmit the live stream over established streaming data connections with one or more respective edge node devices selected for the live stream;

each edge node device selected for the live stream for a respective subscriber device and connected to a respective origin node device is configured to receive the live stream from the respective origin node device and to transmit the live stream to the respective subscriber device over the established streaming data connection.

22. The system of claim 21 , wherein each node device is further configured to, further in response to being selected as the edge node device for the subscriber device, send a message to the broadcaster device indicating that the node device has been selected as the edge node device connected with the subscriber device for the live stream provided by the broadcaster device.

23. The system of claim 22 , wherein each node device is further configured to, further in response to being selected as the edge node device for the subscriber device, store relationship information in a local private database of the node device indicating that the node device has been selected as the edge node device connected with the subscriber device for the live stream provided by the broadcaster device.

24. The system of claim 22 , wherein the subscriber device is further configured to send a message to the broadcaster device indicating the node device that has been selected as the edge node device for the subscriber device for the live stream provided by the broadcaster device.

25. The system of claim 24 , wherein the subscriber device is further configured to store relationship information in a local private database of the subscriber device indicating the node device that has been selected as the edge node device for the subscriber device for the live stream provided by the broadcaster device.

26. The system of claim 24 , wherein the broadcaster device is further configured to, after receiving messages from the subscriber device and the node device that has been selected as the edge node device for the subscriber device, update a local database of the broadcaster device with data indicating the connection path between the subscriber device and the edge node device.

27. The system of claim 21 , wherein each node device is configured to store, in a local database of the node device, information describing, for each live stream processed by the node device, data indicating a respective role of the node for the live stream and a list of respective neighboring devices for the live stream.

28. The system of claim 27 , wherein the broadcaster device is configured to store, in a local database of the broadcaster device, data indicating, for each live stream provided by the broadcaster device, a respective role and identifier of each node device participating in transmitting the live stream.

29. The system of claim 21 , wherein the broadcaster device is configured to store, in a local database of the broadcaster device, data indicating, for each live stream provided by the broadcaster device, a respective role and identifier of each node device participating in transmitting the live stream.

Continuity (3)
Continuation 17092947 · Nov 9, 2020
Continuation 15954473 · Apr 16, 2018
Related Publication 20230069852A1 · Mar 9, 2023
References Cited (103)
US 6310873B1 · Rainis et al. · 2001 [cited by applicant]
US 7809646B2 · Rose · 2010 [cited by applicant]
US 7937362B1 · Lian et al. · 2011 [cited by applicant]
US 8699336B2 · Huo · 2014 [cited by applicant]
US 8797867B1 · Chen et al. · 2014 [cited by applicant]
US 10848553B2 · Allen · 2020 [cited by examiner]
US 10979476B2 · Allen et al. · 2021 [cited by applicant]
US 11064004B2 · Allen et al. · 2021 [cited by applicant]
US 11412037B2 · Allen · 2022 [cited by examiner]
US 11503096B2 · Allen et al. · 2022 [cited by applicant]
US 20020059117A1 · Yoch et al. · 2002 [cited by applicant]
US 20080065771A1 · Marvit et al. · 2008 [cited by applicant]
US 20080082507A1 · Tarantino et al. · 2008 [cited by applicant]
US 20080133767A1 · Birrer et al. · 2008 [cited by applicant]
US 20110087915A1 · Zhang et al. · 2011 [cited by applicant]
US 20130191518A1 · Narayanan et al. · 2013 [cited by applicant]
US 20130322242A1 · Swenson · 2013 [cited by examiner]
US 20140098850A1 · Wolfram · 2014 [cited by examiner]
US 20140198838A1 · Andrysco et al. · 2014 [cited by applicant]
US 20150002619A1 · Johnston · 2015 [cited by examiner]
US 20150058153A1 · Tazian · 2015 [cited by applicant]
US 20150082021A1 · Mandyam et al. · 2015 [cited by applicant]
US 20150095646A1 · Nair et al. · 2015 [cited by applicant]
US 20150170112A1 · Decastro · 2015 [cited by applicant]
US 20150235282A1 · Kamath · 2015 [cited by applicant]
US 20160065636A1 · Cheung et al. · 2016 [cited by applicant]
US 20160094649A1 · Dornquast · 2016 [cited by examiner]
US 20160094659A1 · Shimomoto · 2016 [cited by applicant]
US 20160269365A1 · Reddy · 2016 [cited by examiner]
US 20170103468A1 · Orsini et al. · 2017 [cited by applicant]
US 20170206523A1 · Goeringer · 2017 [cited by examiner]
US 20170277909A1 · Kraemer · 2017 [cited by examiner]
US 20170279774A1 · Booz et al. · 2017 [cited by applicant]
US 20180211043A1 · Husain · 2018 [cited by applicant]
US 20180248880A1 · Sardesai et al. · 2018 [cited by applicant]
US 20180268382A1 · Wasserman · 2018 [cited by applicant]
US 20190089760A1 · Zhang · 2019 [cited by examiner]
US 20190296915A1 · Lancashire · 2019 [cited by applicant]
US 20190320004A1 · Allen et al. · 2019 [cited by applicant]
US 20190320006A1 · Allen et al. · 2019 [cited by applicant]
US 20190320014A1 · Allen et al. · 2019 [cited by applicant]
US 20210058456A1 · Chris et al. · 2021 [cited by applicant]
US 20210360049A1 · Allen et al. · 2021 [cited by applicant]
US 20230164207A1 · Allen et al. · 2023 [cited by applicant]
CN 1767662A · 2006 [cited by applicant]
CN 101102310A · 2008 [cited by applicant]
CN 101176087A · 2008 [cited by applicant]
CN 106210756A · 2016 [cited by applicant]
CN 107277781A · 2017 [cited by applicant]
CN 112292681A · 2021 [cited by applicant]
CN 112470156A · 2021 [cited by applicant]
EP 3264722A1 · 2018 [cited by applicant]
EP 3782068A1 · 2021 [cited by applicant]
EP 3782069A1 · 2021 [cited by applicant]
GB 201802347 · 2018 [cited by applicant]
IN 202211076654 · 2023 [cited by applicant]
WO 2019204158A1 · 2019 [cited by applicant]
WO 2019204159A1 · 2019 [cited by applicant]
“Tether: Fiat Currencies on the Bitcoin Blockchain”, https://tether.to/wp-content/uploads/2016/06/TetherWhitePaper.pdf, last accessed May 21, 2019, 20 Pages. [cited by applicant]
Al-Naji, et al., “Basis: A Price-Stable Cryptocurrency with an Algorithmic Central Bank”, Version 0.99.7, URL: www.basis.io, Jun. 20, 2017, 27 Pages. [cited by applicant]
Amazon Web Services, Inc., “Amazon Web Services—Simple Monthly Calculator”, hllps://calculator.s3.amazonaws.com/index.html, last accessed May 21, 2019, 24 Pages. [cited by applicant]
Andreasson, et al., “Rymd Distributed Encrypted Peer-To-Peer Storage Bachelor's thesis in Computer Science”, Bachelor's thesis in Computer Science, URL: https://odr.chalmers.se/bitstream/20.500.12380/203144/1/203144.pdf… [cited by applicant]
Bordo, et al., “Central Bank Digital Currency and the Future of Monetary Policy”, Retrieved from the Internet on Feb. 10, 2020, Aug. 31, 2017, pp. 1-32. [cited by applicant]
Brent, et al., “Reserve Stabilization Protocol”, URL: https://uploads-ssl.webflow.com/5c0649fb67dd7b3627d59953/5c092732e4eab1547fa9bd0c_whitepaper.pdf., Nov. 30, 2018, 29 Pages. [cited by applicant]
Brooks, et al., “Havven, A Decentralized Payment Network and Stablecoin v0.8”, Jun. 11, 2018, 31 Pages. [cited by applicant]
Doran, et al., “Emergent Economies for Pole Playing Games”, Technical Report LARC-2010-03, Laboratory for Recreational Computing Department Science & Engineering University of North Texas, Jun. 23, 2010, 24 Pages. [cited by applicant]
Dorri, et al., “LSB: A Lightweight Scalable BlockChain for IoT Security and Privacy”, Dec. 8, 2017, 17 Pages. [cited by applicant]
European Patent Office, “Communication under Rule 71(3) Received”, European Application No. 19789015.5, dated Jan. 3, 2023., 37 Pages. [cited by applicant]
European Patent Office, “Communication under Rule 71(3) Received”, European Application No. 19789015.5, dated Jun. 21, 2023, 38 Pages. [cited by applicant]
European Patent Office, “Extended European Search Report”, European Application No. 19789015.5, dated Aug. 16, 2021, 13 Pages. [cited by applicant]
European Patent Office, “Extended European Search Report Received”, European Application No. 19788671.6, dated Mar. 3, 2022, 16 Pages. [cited by applicant]
Github, Inc., “https://github.com/larsiusprime/bazaarBot”, last accessed May 21, 2019. [cited by applicant]
Lipton, et al., “Digital trade coin: towards a more stable digital currency”, URL: https://royalsocietypublishing.org/doi/pdf/10.1098/rsos.180155, Jun. 18, 2018, 15 Pages. [cited by applicant]
Silva, et al., “Cryptocurrency Compensation: A Primer on Token-Based Awards”, Harvard Law School Forum on Corporate Governance, May 19, 2018, pp. 1-6. [cited by applicant]
U.S. Patent and Trademark Office, “Final Office Action Received”, U.S. Appl. No. 17/347,022, dated Apr. 5, 2022, 8 Pages. [cited by applicant]
U.S. Patent and Trademark Office, “Final Office Action Received”, U.S. Appl. No. 15/954,318, dated Feb. 13, 2019, 8 Pages. [cited by applicant]
U.S. Patent and Trademark Office, “Final Office Action Received”, U.S. Appl. No. 15/954,318, dated Nov. 1, 2019, 15 Pages. [cited by applicant]
U.S. Patent and Trademark Office, “Final Office Action Received”, U.S. Appl. No. 16/161,264, dated Nov. 19, 2019, 10 Pages. [cited by applicant]
U.S. Patent and Trademark Office, “International Search Report and Written Opinion Received”, International Application No. PCT/US2019/027304, dated Aug. 15, 2019, 14 Pages. [cited by applicant]
U.S. Patent and Trademark Office, “International Search Report and Written Opinion Received”, International Application No. PCT/US2019/027300, dated Aug. 26, 2019, 13 Pages. [cited by applicant]
U.S. Patent and Trademark Office, “International Search Report and Written Opinion Received”, International Application No. PCT/US2019/067767, dated Mar. 2, 2020, 13 pages. [cited by applicant]
U.S. Patent and Trademark Office, “Non Final Office Action Received”, U.S. Appl. No. 16/161,264, dated Aug. 9, 2019, 8 Pages. [cited by applicant]
U.S. Patent and Trademark Office, “Non Final Office Action Received”, U.S. Appl. No. 15/954,318, dated Jun. 2, 2020, 8 Pages. [cited by applicant]
U.S. Patent and Trademark Office, “Non Final Office Action Received”, U.S. Appl. No. 15/954,318, dated Jun. 14, 2019, 7 Pages. [cited by applicant]
U.S. Patent and Trademark Office, “Non Final Office Action Received”, U.S. Appl. No. 15/954,318, dated Oct. 23, 2018, 7 Pages. [cited by applicant]
U.S. Patent and Trademark Office, “Non Final Office Action Received”, U.S. Appl. No. 16/161,264, dated Sep. 21, 2020, 11 Pages. [cited by applicant]
U.S. Patent and Trademark Office, “Non-Final Office Action Received”, U.S. Appl. No. 17/347,022, 21 Pages. [cited by applicant]
U.S. Patent and Trademark Office, “Non-Final Office Action Received”, U.S. Appl. No. 17/092,947, 31 Pages. [cited by applicant]
U.S. Patent and Trademark Office, “Non-Final Office Action Received”, U.S. Appl. No. 18/053,386, dated Mar. 10, 2023, 10 Pages. [cited by applicant]
U.S. Patent and Trademark Office, “Notice of Allowance Received”, U.S. Appl. No. 17/092,947, dated Apr. 13, 2022, 8 Pages. [cited by applicant]
U.S. Patent and Trademark Office, “Notice of Allowance Received”, U.S. Appl. No. 17/347,022, dated Jul. 19, 2022, 6 Pages. [cited by applicant]
U.S. Patent and Trademark Office, “Notice of Allowance Received”, U.S. Appl. No. 15/954,318, dated Dec. 11, 2020, pp. 5. [cited by applicant]
U.S. Patent and Trademark Office, “Notice of Allowance Received”, U.S. Appl. No. 15/954,473, dated Jul. 24, 2020, 7 Pages. [cited by applicant]
U.S. Patent and Trademark Office, “Notice of Allowance Received”, U.S. Appl. No. 16/161,264, dated Mar. 15, 2021, 5 Pages. [cited by applicant]
WIPO, “International Preliminary Report on Patentability”, International Application No. PCT/US2019/027300, dated Oct. 29, 2020, 10 Pages. [cited by applicant]
WIPO, “International Preliminary Report on Patentability”, International Application No. PCT/US2019/027304, dated Oct. 29, 2020, 11 Pages. [cited by applicant]
Devadutta Ghat, “VideoCoin—A Decentralized Video Encoding, Storage, and Content Distribution Network”, XP05567902, Retrieved from the Internet by EPO: URL:https://storage.googleapis.com/videocoin-proico/VideoCoin-Whitep… [cited by applicant]
European Patent Office, “Communication Pursuant to Article 94(3) EPC”, European Application No. 19788671.6, Jan. 31, 2024, 7 Pages. [cited by applicant]
Chinese Patent Office, “First Office Action Received”, Chinese Patent Application No. 201980040073.4, Aug. 30, 2024, 16 Pages. [cited by applicant]
Chinese Patent Office, “First Office Action Received”, Chinese Patent Application No. 201980038724.6, Sep. 2, 2024, 24 Pages. [cited by applicant]
Wang, M , et al., “Network Coding in Live Peer-to-Peer Streaming”, IEEE Transactions on Multimedia, vol. 9, Issue 8, Dec. 31, 2007, 15 Pages. [cited by applicant]
Li, Weixian, “Design And Implementation Of Digital Currency Distributed Ledger Consenus System”, China's Outstanding Master's Degree Thesis Full-text Database Information Technology Series, vol. 2017, Issue 2, Feb. 15, … [cited by applicant]
Chen Ye, et al., “Telecommunications Science, 03”, Blockchain-based network Overview of CyberSecurity Technology, Mar. 20, 2018. [cited by applicant]