Skip to content

Commit 55db3b3

Browse files
committed
Merge forward_secure: FSP-ANNS v1.0 Publication Release
Complete implementation with: - Multi-table LSH with alpha-based stabilization - Forward security via selective re-encryption - RocksDB metadata versioning - SuperSystemLifecycleIT end-to-end validation - 10 integration tests passing - 4 forward security adversarial tests Performance (current scale): - Query time: 1.7-2.3s - Distance ratio: 1.014× (excellent) - Recall@10: 31.77% (requires improvement) Issues to address in scalability-1b: - 25M experiment failure - Glove-100 recall 28.94% (target: ≥75%) - Lambda=1 breaks prefix relaxation - Omega hardcoded to 1.0 (needs data-adaptive) Target venues: ESORICS, ACSAC, USENIX Security, ASIACRYPT Submission target: February 2026
2 parents c3712bb + 9cdd20e commit 55db3b3

174 files changed

Lines changed: 16610 additions & 14613 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.idea/compiler.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/encodings.xml

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

fsp-anns-parent/.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,7 @@ Results/
3939
.tmp
4040
*.class
4141
api/dependency-reduced-pom.xml
42+
/logs/old_fsp-ann.log
43+
/it/out/reencrypt_metrics.csv
44+
/it/out/retrieved_samples.csv
45+
/it/out/retrieved_worst.csv

fsp-anns-parent/Run-Datasets.ps1

Lines changed: 108 additions & 436 deletions
Large diffs are not rendered by default.

fsp-anns-parent/api/dependency-reduced-pom.xml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
</parent>
88
<modelVersion>4.0.0</modelVersion>
99
<artifactId>api</artifactId>
10-
<name>FSP‑ANN API Service</name>
10+
<name>FSPANN API Service</name>
1111
<build>
1212
<plugins>
1313
<plugin>
@@ -111,5 +111,21 @@
111111
</exclusion>
112112
</exclusions>
113113
</dependency>
114+
<dependency>
115+
<groupId>org.mockito</groupId>
116+
<artifactId>mockito-core</artifactId>
117+
<version>5.14.2</version>
118+
<scope>test</scope>
119+
<exclusions>
120+
<exclusion>
121+
<artifactId>byte-buddy-agent</artifactId>
122+
<groupId>net.bytebuddy</groupId>
123+
</exclusion>
124+
<exclusion>
125+
<artifactId>objenesis</artifactId>
126+
<groupId>org.objenesis</groupId>
127+
</exclusion>
128+
</exclusions>
129+
</dependency>
114130
</dependencies>
115131
</project>

fsp-anns-parent/api/pom.xml

Lines changed: 26 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
</parent>
1313

1414
<artifactId>api</artifactId>
15-
<name>FSP‑ANN API Service</name>
15+
<name>FSPANN API Service</name>
1616

1717
<dependencies>
1818
<!-- All functional layers -->
@@ -80,76 +80,63 @@
8080
<artifactId>junit-jupiter-api</artifactId>
8181
<scope>test</scope>
8282
</dependency>
83+
<dependency>
84+
<groupId>org.mockito</groupId>
85+
<artifactId>mockito-core</artifactId>
86+
<version>5.14.2</version>
87+
<scope>test</scope>
88+
</dependency>
8389

8490
</dependencies>
8591

8692
<build>
8793
<plugins>
88-
<!-- Assembly to build a fat JAR with ForwardSecureANNSystem main -->
89-
<plugin>
90-
<artifactId>maven-assembly-plugin</artifactId>
91-
<configuration>
92-
<archive>
93-
<manifest>
94-
<mainClass>com.fspann.api.ForwardSecureANNSystem</mainClass>
95-
</manifest>
96-
</archive>
97-
<descriptorRefs>
98-
<descriptorRef>jar-with-dependencies</descriptorRef>
99-
</descriptorRefs>
100-
</configuration>
101-
<executions>
102-
<execution>
103-
<id>make-fat-jar</id>
104-
<phase>package</phase>
105-
<goals><goal>single</goal></goals>
106-
</execution>
107-
</executions>
108-
</plugin>
94+
95+
<!-- SHADE ONLY DURING ROOT PACKAGE (NOT DURING IT EXECUTION) -->
10996
<plugin>
11097
<groupId>org.apache.maven.plugins</groupId>
11198
<artifactId>maven-shade-plugin</artifactId>
112-
<version>3.5.0</version>
99+
<version>3.2.4</version>
113100
<executions>
114101
<execution>
115-
<phase>package</phase>
102+
<id>shade-after-it</id>
103+
<phase>install</phase>
116104
<goals>
117105
<goal>shade</goal>
118106
</goals>
119107
<configuration>
108+
<shadedArtifactAttached>true</shadedArtifactAttached>
109+
<shadedClassifierName>shaded</shadedClassifierName>
120110
<filters>
121111
<filter>
122112
<artifact>*:*</artifact>
123113
<excludes>
124-
<exclude>logback.xml</exclude>
125-
<exclude>logback-test.xml</exclude>
114+
<exclude>META-INF/*.SF</exclude>
115+
<exclude>META-INF/*.DSA</exclude>
116+
<exclude>META-INF/*.RSA</exclude>
126117
</excludes>
127118
</filter>
128119
</filters>
120+
<transformers>
121+
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
122+
<mainClass>com.fspann.api.ForwardSecureANNSystem</mainClass>
123+
</transformer>
124+
</transformers>
129125
</configuration>
130126
</execution>
131127
</executions>
132128
</plugin>
129+
130+
<!-- Disable Surefire (API does not need unit tests here) -->
133131
<plugin>
134132
<groupId>org.apache.maven.plugins</groupId>
135133
<artifactId>maven-surefire-plugin</artifactId>
136134
<version>3.2.5</version>
137135
<configuration>
138-
<reuseForks>false</reuseForks>
139-
<forkCount>1</forkCount>
140-
<argLine>-Xmx8g -Xss4m -XX:+CrashOnOutOfMemoryError</argLine>
141-
<runOrder>alphabetical</runOrder>
142-
<failIfNoTests>true</failIfNoTests>
143-
<systemPropertyVariables>
144-
<test.env>true</test.env>
145-
<rocksdb.stats>true</rocksdb.stats>
146-
</systemPropertyVariables>
147-
<skipAfterFailureCount>1</skipAfterFailureCount>
148-
<argLine>-XX:+EnableDynamicAgentLoading</argLine>
136+
<skipTests>true</skipTests>
149137
</configuration>
150-
151138
</plugin>
152139

153140
</plugins>
154141
</build>
155-
</project>
142+
</project>

fsp-anns-parent/api/src/main/java/com/fspann/api/ApiSystemConfig.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,10 @@ public ApiSystemConfig(String configFilePath) throws IOException {
6464
public SystemConfig getConfig() {
6565
return config;
6666
}
67-
public String getResolvedPath() { return resolvedPath; }
68-
public String getConfigSha256() { return sha256; }
6967

7068
/** Clear both ApiSystemConfig and SystemConfig caches. Useful for tests/hot-reload. */
7169
public static void clearCache() {
7270
configCache.clear();
73-
SystemConfig.clearCache();
7471
}
7572

7673
private static String computeSha256(String p) {

0 commit comments

Comments
 (0)