FLoC Simulator

Overview

FLoC Simulator

Command line FLoC simulator to calculate CohortID with using host list and cluster data.

Build and Run Demo

$ cd

$ cd demos/floc_sample/
[email protected]:~/github/shigeki/floc_simulator/demos/floc_sample$ go build
$ go get
go: downloading golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4
$ go build
$ ./floc_sample host_list.json
domain_list: [nikkei.com hatenablog.com nikkansports.com yahoo.co.jp sponichi.co.jp cnn.co.jp floc.glitch.me ohtsu.org]
sim_hash: 779363756518407
cohortId: 21454

Input json file of host list for history data is needed to run. See host_list.json file in this repo.

Comuputed result below shows the same cohort Id as Chromium that has the history of servers included in host_list.json. This is only tested in the FLoC version of "Chrome 2.1".

Notes on a domain list when you compare the cohort ID between Chrome and floc_simulator

Chrome requires the following requirements for the domain list in your browsing histories. Please be sure if your domain list for this simulator meets them when you compare the result of cohort Id between Chrome and floc_simulator. You need to use the exact same domain list as that used in Chrome.

// computation. The history entry is eligible for floc computation if all of the
// following conditions hold:
// 1) the IP of the navigation was publicly routable.
// 2) the interest-cohort permissions policy in the main document allows the
// floc history inclusion.
// 3) either the page has an ad resource, or the document.interestCohort API is
// used in the page.

References

You might also like...
2D particle system simulator for Go
2D particle system simulator for Go

twodeeparticles An engine-agnostic 2D particle system simulator for Go twodeeparticles does not render particles itself. Any rendering engine can be u

Autopilot in Go for docking the SpaceX Dragon capsule in the simulator
Autopilot in Go for docking the SpaceX Dragon capsule in the simulator

Dragon ISS Docking Autopilot in Go Autopilot written in Go and executed as WebAssembly for docking the SpaceX Dragon capsule in the official simulator

connect to microsoft flight simulator 2020 using golang

msfs2020-go simconnect package msfs2020-go/simconnect connects to microsoft flight simulator 2020 using golang. cross-compiles from macos/linux, no ot

secure scuttlebutt network simulator

Network Simulator a brief exposition on the network simulator to be built as part of SSB's NGI Pointer grant For the remainder of May—and likely parts

A LoRaWAN nodes' and network simulator that works with a real LoRaWAN environment (such as Chirpstack) and equipped with a web interface for real-time interaction.
A LoRaWAN nodes' and network simulator that works with a real LoRaWAN environment (such as Chirpstack) and equipped with a web interface for real-time interaction.

LWN Simulator A LoRaWAN nodes' simulator to simulate a LoRaWAN Network. Table of Contents General Info Requirements Installation General Info LWN Simu

Scalable package delivery logistics simulator built using SingleStore and Vectorized Redpanda
Scalable package delivery logistics simulator built using SingleStore and Vectorized Redpanda

Reference Architecture using SingleStore and Redpanda for global logistics 📯 INFO: For the story behind this code (and epic dashboards), check out th

MIPS simulator written in Go
MIPS simulator written in Go

FUM-MIPS is a 5-stage CPU, that supports a subset of the MIPS Instruction Set. It is a 32-bit CPU with 32 general-purpose registers. The figure below shows an overview of the architecture.

A web-based simulator for the Kubernetes scheduler
A web-based simulator for the Kubernetes scheduler

Web-based Kubernetes scheduler simulator Hello world. Here is web-based Kubernetes scheduler simulator. On the simulator, you can create/edit/delete t

An easy-to-use, flexible network simulator library in Go.

ns-x An easy-to-use, flexible network simulator library for Go. Feature Programmatically build customizable and scalable network topology from basic n

K8s cluster simulator for workload scheduling.
K8s cluster simulator for workload scheduling.

Open-Simulator Motivation 概念定义 Open-Simulator 是 K8s 下的仿真调度组件。用户准备一批待创建 Workload 资源,Workload 资源指定好资源配额、绑核规则、亲和性规则、优先级等,通过 Open-Simulator 的仿真调度能力可判断当前集群

Wirewold cellular automata simulator, running entirely on GPU.

Wireworld-gpu Wireworld implements the data and rules for the Wireworld cellular automata. This particular version is an experiment whereby the simula

A genetic simulator written in Go
A genetic simulator written in Go

BioGo This is a simple genetic simulator written in Go. Heavily inspired by https://github.com/davidrmiller/biosim4/tree/main/src About This project s

AutoTrackIR will automatically re-enabled your Track IR if flight simulator disabled it. (bug introduce in SU7)

AutoTrackIR AutoTrackIR will automatically re-enable your Track IR if flight simulator disabled it. (bug introduce in SU7) How it works ? It just watc

This repo contains implementation of Conway's Game of Life simulator

Conway's Game of Life simulation This repo contains implementation of Conway's Game of Life simulator. Build Prerequisite: Tho Go programming language

A cloud-native application simulator for golang

Build and upload Docker images Build docker images for main application and work

golife is a cell evolution simulator.
golife is a cell evolution simulator.

golife WORK IN PROGRESS golife is a cell evolution simulator. It presents autonomous organism with inner properties and behavior (hunter or prey) that

VHDL Simulator, code VHDL in your browser! 🤖
VHDL Simulator, code VHDL in your browser! 🤖

VHDL Runner 🤖 VHDL Simulator, code VHDL in your browser! 🤖 Usage Go to https://vhdl.mateuszwozniak.com/ Next, type some VHDL code, with appropriate

Economy - Economy simulator library in Go

economy Economy simulator library in Go This library was developed primarily to

Typo - Terminal input simulator for demos
Typo - Terminal input simulator for demos

typo Somehow, whenever I need to give a presentation or demo, my typing skills d

Comments
  • Incorrect FLoC ID returned

    Incorrect FLoC ID returned

    While experimenting with the floc_simulator, I observed that the simulator is dependent on the input characters like "www." or even "/"; whereas the actual floc by google is independent of these variations and always considers eTLD+1.

    For example: for websites "https://www.yahoo.com", "https://www.yahoo.com/", "https://yahoo.com/" and "https://yahoo.com" google's FLoC Algorithm returns the same FLoC ID when any variation mentioned above is checked for FLoC ID. This is shown by the output screenshot below:

    image

    However, when a set of the same websites are checked with the above variations in Shigeki's floc_simulator, it returns a different FLoC ID for each change in variation. The change in FLoC ID with these variations is shown by the following output screenshot for floc_simulator.

    image

    The FLoC ID is not matching even for the sample inputs that the simulator has shown on its homepage.

    Note: Since Shigeki's floc_simulator works only for FLoC Version 2.1. This version has been explicitly set using the browser flag snippet below (i.e., setting finch_config_version) and used while carrying out all of the above-mentioned experiments/tests. Also, all the websites used in experimentation have opted-in for FLoC OT.

    FederatedLearningOfCohorts:update_interval/10s/minimum_history_domain_size_required/1/finch_config_version/2,FlocIdSortingLshBasedComputation,InterestCohortFeaturePolicy

    opened by Yash-Vekaria 11
  • Help understanding ApplySortingLsh?

    Help understanding ApplySortingLsh?

    Hi,

    Thank you for your package - it is very nicely written and very easy to use.

    I am trying to understand how the ApplySortingLsh function works. In particular:

    • What do the values in cluster_data represent? I see that there are 33872 values in the array, so I assume there is one per cohort. But I see that most of the values seem to be 35, 34, 36, 98, or 99. What do these values mean/represent in the real world? Or, why/how are they used?
    opened by stepthom 6
Owner
Shigeki Ohtsu
Shigeki Ohtsu
connect to microsoft flight simulator 2020 using golang

msfs2020-go simconnect package msfs2020-go/simconnect connects to microsoft flight simulator 2020 using golang. cross-compiles from macos/linux, no ot

lian 365 Nov 23, 2022
secure scuttlebutt network simulator

Network Simulator a brief exposition on the network simulator to be built as part of SSB's NGI Pointer grant For the remainder of May—and likely parts

null 21 May 13, 2022
A LoRaWAN nodes' and network simulator that works with a real LoRaWAN environment (such as Chirpstack) and equipped with a web interface for real-time interaction.

LWN Simulator A LoRaWAN nodes' simulator to simulate a LoRaWAN Network. Table of Contents General Info Requirements Installation General Info LWN Simu

ARSLab 33 Nov 20, 2022
An easy-to-use, flexible network simulator library in Go.

ns-x An easy-to-use, flexible network simulator library for Go. Feature Programmatically build customizable and scalable network topology from basic n

Bytedance Inc. 106 Nov 25, 2022
AutoTrackIR will automatically re-enabled your Track IR if flight simulator disabled it. (bug introduce in SU7)

AutoTrackIR AutoTrackIR will automatically re-enable your Track IR if flight simulator disabled it. (bug introduce in SU7) How it works ? It just watc

Stéphane Depierrepont 5 Oct 7, 2022
golife is a cell evolution simulator.

golife WORK IN PROGRESS golife is a cell evolution simulator. It presents autonomous organism with inner properties and behavior (hunter or prey) that

Jean-Thierry BONHOMME 0 Dec 30, 2021
Multithreaded Airline Check-In Simulator

Multithreaded Airline Check-In Simulator This is a task scheduler which includes a single queue and 5 clerks. The queue will be sorted based on priori

null 0 Mar 15, 2022
Floc: Orchestrate goroutines with ease.

go-floc Floc: Orchestrate goroutines with ease. The goal of the project is to make the process of running goroutines in parallel and synchronizing the

Andrew Bashkatov 260 Dec 8, 2022
A simple low bandwidth simulator written in go

NETSNAIL 0.8 ABOUT Netsnail is a simple network proxy that simulates low bandwidth. RUNNING Usage of netsnail: -d=0: the delay on data transfe

Per Arneng 23 May 19, 2021
Busy is a mouse movement simulator

Busy is a mouse movement simulator. It stops your system from going to sleep / idling and makes sure that you keep getting those notifications while you take that well deserved break.

Tejus 15 Mar 31, 2021